3
# [SNIPPET_NAME: Date Selection Widget]
4
# [SNIPPET_CATEGORIES: PyKDE4]
5
# [SNIPPET_DESCRIPTION: Provides a widget for calendar date input]
6
# [SNIPPET_AUTHOR: Troy Melhase]
7
# [SNIPPET_LICENSE: GPL]
8
# [SNIPPET_DOCS: http://api.kde.org/pykde-4.3-api/kdeui/KDatePicker.html]
10
from PyQt4.QtCore import SIGNAL, Qt
11
from PyQt4.QtGui import QLabel
13
from PyKDE4.kdecore import i18n
14
from PyKDE4.kdeui import KVBox, KHBox, KDatePicker, KDateWidget
17
helpText = """Date selection widgets - KDatePicker and KDateWidget - provide widgets for calendar
20
KDatePicker emits two types of signals, either dateSelected() or dateEntered().
22
A line edit allows the user to select a date directly by entering numbers like
23
19990101 or 990101 into KDatePicker."""
25
class MainFrame(KVBox):
26
def __init__(self, parent=None):
27
KVBox.__init__(self, parent)
28
self.help = QLabel (i18n (helpText), self)
29
self.layout ().setAlignment (self.help, Qt.AlignHCenter | Qt.AlignTop)
36
hBox.layout ().setAlignment (vBox1, Qt.AlignHCenter)
37
hBox.layout ().setAlignment (vBox2, Qt.AlignHCenter)
41
self.datePickerLabel = QLabel ("KDatePicker", vBox1)
43
self.datePicker = KDatePicker(vBox2)
44
self.datePicker.setFixedSize (400, 200)
46
self.other = QLabel('KDateWidget', vBox1)
47
vBox1.layout ().setAlignment (self.other, Qt.AlignBottom)
49
self.dateDisplay = KDateWidget(vBox2)
52
self.connect(self.datePicker, SIGNAL('dateChanged(QDate)'),
53
self.dateDisplay.setDate)
56
# This example can be run standalone
58
if __name__ == '__main__':
62
from PyKDE4.kdecore import KCmdLineArgs, KAboutData, KLocalizedString, ki18n
63
from PyKDE4.kdeui import KApplication, KMainWindow
66
class MainWin (KMainWindow):
67
def __init__ (self, *args):
68
KMainWindow.__init__ (self)
71
self.setCentralWidget (MainFrame (self))
73
#-------------------- main ------------------------------------------------
75
appName = "kdatepicker"
77
programName = ki18n ("kdatepicker")
79
description = ki18n ("KDatePicker Example")
80
license = KAboutData.License_GPL
81
copyright = ki18n ("(c) 2006 Troy Melhase")
83
homePage = "www.riverbankcomputing.com"
84
bugEmail = "jbublitz@nwinternet.com"
86
aboutData = KAboutData (appName, catalog, programName, version, description,
87
license, copyright, text, homePage, bugEmail)
89
aboutData.addAuthor (ki18n ("Troy Melhase"), ki18n ("original concept"))
90
aboutData.addAuthor (ki18n ("Jim Bublitz"), ki18n ("pykdedocs"))
92
KCmdLineArgs.init (sys.argv, aboutData)
95
mainWindow = MainWin (None, "main window")
97
app.connect (app, SIGNAL ("lastWindowClosed ()"), app.quit)