You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.2 KiB
142 lines
5.2 KiB
13 years ago
|
iconName = 'stop'
|
||
|
labelText = 'KMessageBox'
|
||
|
|
||
|
from random import random
|
||
|
from traceback import print_exc
|
||
|
from StringIO import StringIO
|
||
|
|
||
|
from qt import QFrame, QGridLayout, QLabel, QStringList, SIGNAL
|
||
|
from kdecore import i18n
|
||
|
from kdeui import KGuiItem, KPushButton, KMessageBox, KTextEdit
|
||
|
|
||
|
|
||
|
helpText = ("The KMessageBox Python class wraps the static methods of its C++ "
|
||
|
"counterpart. Some of these methods are used below. Refer to the "
|
||
|
"docs for KMessageBox for a full list.")
|
||
|
|
||
|
|
||
|
class MainFrame(QFrame):
|
||
|
msg = 'Do you like food?'
|
||
|
caption = 'Simple Question'
|
||
|
err = 'Some kind of error happened, but it could be worse!'
|
||
|
info = 'Always wash your hands after eating.'
|
||
|
items = ['Apples', 'Bananas', 'Cantaloupe', 'Mangos', 'Oranges', 'Pears', ]
|
||
|
|
||
|
def __init__(self, parent=None):
|
||
|
QFrame.__init__(self, parent)
|
||
|
items = QStringList()
|
||
|
for item in self.items:
|
||
|
items.append(item)
|
||
|
self.items = items
|
||
|
|
||
|
responses = 'Ok Cancel Yes No Continue'.split()
|
||
|
responses = [(getattr(KMessageBox, res), res) for res in responses]
|
||
|
self.responses = dict(responses)
|
||
|
|
||
|
self.help = KTextEdit(helpText, '', self)
|
||
|
|
||
|
layout = QGridLayout(self, 5, 2, 4)
|
||
|
layout.setRowStretch(0, 10)
|
||
|
layout.setColStretch(1, 10)
|
||
|
layout.addMultiCellWidget(self.help, 0, 1, 0, 1)
|
||
|
|
||
|
button = KPushButton(i18n('Question Yes-No'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.questionYesNo)
|
||
|
layout.addWidget(button, 2, 0)
|
||
|
layout.setRowStretch(2, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Warning Yes-No-Cancel'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.warningYesNoCancel)
|
||
|
layout.addWidget(button, 3, 0)
|
||
|
layout.setRowStretch(3, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Warning Continue-Cancel-List'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.warningContinueCancelList)
|
||
|
layout.addWidget(button, 4, 0)
|
||
|
layout.setRowStretch(4, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Error'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.error)
|
||
|
layout.addWidget(button, 5, 0)
|
||
|
layout.setRowStretch(5, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Detailed Error'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.detailedError)
|
||
|
layout.addWidget(button, 6, 0)
|
||
|
layout.setRowStretch(6, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Sorry'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.sorry)
|
||
|
layout.addWidget(button, 7, 0)
|
||
|
layout.setRowStretch(7, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Detailed Sorry'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.detailedSorry)
|
||
|
layout.addWidget(button, 8, 0)
|
||
|
layout.setRowStretch(8, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Information'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.information)
|
||
|
layout.addWidget(button, 9, 0)
|
||
|
layout.setRowStretch(9, 0)
|
||
|
|
||
|
button = KPushButton(i18n('Information List'), self)
|
||
|
self.connect(button, SIGNAL('clicked()'), self.informationList)
|
||
|
layout.addWidget(button, 10, 0)
|
||
|
layout.setRowStretch(10, 0)
|
||
|
|
||
|
def questionYesNo(self):
|
||
|
dlg = KMessageBox.questionYesNo(self, self.msg, self.caption)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def warningYesNoCancel(self):
|
||
|
dlg = KMessageBox.warningYesNoCancel(self, self.msg, self.caption)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def warningContinueCancelList(self):
|
||
|
uiitem = KGuiItem('Time to Eat', 'favorites')
|
||
|
ctor = KMessageBox.warningContinueCancelList
|
||
|
dlgid = '%s' % random()
|
||
|
args = self, self.msg, self.items, self.caption, uiitem, dlgid
|
||
|
dlg = ctor(*args)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def error(self):
|
||
|
dlg = KMessageBox.error(self, self.err)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def detailedError(self):
|
||
|
try:
|
||
|
x = self.thisAttributeDoesNotExist
|
||
|
except (AttributeError, ), ex:
|
||
|
handle = StringIO()
|
||
|
print_exc(0, handle)
|
||
|
details = handle.getvalue()
|
||
|
dlg = KMessageBox.detailedError(self, self.err, details)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def sorry(self):
|
||
|
dlg = KMessageBox.sorry(self, self.err)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def detailedSorry(self):
|
||
|
try:
|
||
|
x = self.thisAttributeDoesNotExist
|
||
|
except (AttributeError, ), ex:
|
||
|
handle = StringIO()
|
||
|
print_exc(0, handle)
|
||
|
details = handle.getvalue()
|
||
|
dlg = KMessageBox.detailedSorry(self, self.err, details)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def information(self):
|
||
|
dlgid = '%s' % random()
|
||
|
dlg = KMessageBox.information(self, self.info, '', dlgid)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|
||
|
|
||
|
def informationList(self):
|
||
|
dlgid = '%s' % random()
|
||
|
ctor = KMessageBox.informationList
|
||
|
dlg = ctor(self, self.info, self.items, '', dlgid)
|
||
|
print 'You pressed "%s"' % (self.responses.get(dlg, dlg), )
|