def getErrorDialog(self,text,infoText,detailedText): dlg = QMessageBox(self) dlg.setIcon(QMessageBox.Warning) dlg.setWindowModality(QtCore.Qt.WindowModal) dlg.setWindowTitle("Error") dlg.setText(text) dlg.setInformativeText(infoText) dlg.setDetailedText(detailedText) dlg.setStandardButtons(QMessageBox.Ok) return dlg
def displayDialog(message, detailedMessage=None, title=None, level=logging.CRITICAL, dialogWidth=150): ''' A generic function to display the dialog in a QMessageBox message: Primary message to be displayed detailedMessage: detail message that is shown after user clicks on the button level: Message level dialogWidth: width of the messageBox ''' width = dialogWidth mainWin = WorkbenchHelper.window msgBox = QMessageBox (parent=mainWin) if detailedMessage: detailedMessage = 'Application ' + " encountered following problem :" + detailedMessage if len(message) < width: message += ' ' * (width - len(message)) msgBox.setWindowTitle(__getTitleFromLevel(level)) msgBox.setIcon(__getIconFromLevel(level)) msgBox.setText(message) if detailedMessage: msgBox.setDetailedText(detailedMessage) ret = msgBox.exec_()
def install(self): pref = self.app.preferences.ui ct = pref.configTable curi = int(pref.filtersComboBox_new.currentIndex()) filter = self._filters[self._keys[curi]] config, hash = {}, gen_hash() settings = self.filter_settings(filter.id, hash) for i in range(ct.rowCount()): config[unicode(ct.item(i,0).text())] = unicode(ct.item(i,1).text()) try: filter.install(settings, config) except Exception as e: msg = QMessageBox(pref) msg.setIcon(QMessageBox.Critical) msg.setWindowTitle("Installation Error ...") msg.setText("An Error occured during installation.") msg.setInformativeText("Could install filter '%s'." % filter.name) msg.setStandardButtons(QMessageBox.Ok) msg.setDetailedText(format_exc()) msg.exec_() return # success self.add_filter_instance(filter, hash) pref.filtersComboBox_new.currentIndexChanged.emit(curi) pref.filtertabWidget.setCurrentIndex(0)
def show_popup(set_text, detailed, window_title, message_type): mess = QMessageBox() mess.setText(set_text) if len(detailed) > 0: mess.setInformativeText("For more information click \"Show Details\"") mess.setDetailedText(detailed) mess.setIcon(message_type) mess.setWindowTitle(window_title) mess.setMinimumWidth(500) mess.exec_()
def handleInfo(self): msg = QMessageBox() #msg.setFixedSize(500, 300) #msg.setGeometry(100,100, 400, 200) msg.setIcon(QMessageBox.Information) msg.setText("Axel Schneider") msg.setInformativeText(unicode(u"©2016")) msg.setWindowTitle("Cut Video") msg.setDetailedText("Python Qt4") msg.setStandardButtons(QMessageBox.Ok) retval = msg.exec_() print "value of pressed message box button:", retval
class MessageWindow: def __init__(self, title, text, type="ok", default=None, customButtons =None, customIcon=None, run=True, destroyAfterRun=True, detailed=False, longText=""): self.rc = None self.dialog = None self.msgBox = QMessageBox() self.doCustom = False self.customButtons = customButtons icon = None buttons = None if type == 'ok': buttons = QMessageBox.Ok icon = "question" elif type == 'error': icon = "error" buttons = QMessageBox.Ok elif type == 'warning': icon = "warning" buttons = QMessageBox.Ok elif type == 'okcancel': icon = "question" buttons = QMessageBox.Ok | QMessageBox.Cancel elif type == 'question': icon = "question" buttons = QMessageBox.Ok | QMessageBox.Cancel elif type == 'yesno': icon = "question" buttons = QMessageBox.Yes | QMessageBox.No elif type == 'custom': self.doCustom = True if customIcon: icon = customIcon else: icon = "question" text = "<qt>%s</qt>" % text.replace("\n", " ") self.msgBox.setText(text) if detailed: self.msgBox.setDetailedText(unicode(longText)) if self.doCustom: button = None for index, text in enumerate(self.customButtons): button = self.msgBox.addButton(text, QMessageBox.ActionRole) if default is not None and default == index: self.msgBox.setDefaultButton(button) else: self.msgBox.setStandardButtons(buttons) if default == "no": default = QMessageBox.No elif default == "yes": default = QMessageBox.Yes elif default == "ok": default = QMessageBox.Ok else: default = None self.msgBox.setDefaultButton(default) self.dialog = Dialog(_(title), self.msgBox, closeButton=False, isDialog=True, icon=icon) self.dialog.resize(QSize(0,0)) if run: self.run(destroyAfterRun) def run(self, destroyAfterRun=True): self.rc = self.dialog.exec_() if self.msgBox.clickedButton(): if not self.doCustom: if self.msgBox.clickedButton().text() in [_("Ok"), _("Yes")]: self.rc = 1 elif self.msgBox.clickedButton().text() in [_("Cancel"), _("No")]: self.rc = 0 else: if self.msgBox.clickedButton().text() in self.customButtons: self.rc = self.customButtons.index(self.msgBox.clickedButton().text()) if destroyAfterRun: self.dialog = None return self.rc
class MessageWindow: def __init__(self, title, text, type="ok", default=None, customButtons=None, customIcon=None, run=True, destroyAfterRun=True, detailed=False, longText=""): self.rc = None self.dialog = None self.msgBox = QMessageBox() self.doCustom = False self.customButtons = customButtons icon = None buttons = None if type == 'ok': buttons = QMessageBox.Ok icon = "question" elif type == 'error': icon = "error" buttons = QMessageBox.Ok elif type == 'warning': icon = "warning" buttons = QMessageBox.Ok elif type == 'okcancel': icon = "question" buttons = QMessageBox.Ok | QMessageBox.Cancel elif type == 'question': icon = "question" buttons = QMessageBox.Ok | QMessageBox.Cancel elif type == 'yesno': icon = "question" buttons = QMessageBox.Yes | QMessageBox.No elif type == 'custom': self.doCustom = True if customIcon: icon = customIcon else: icon = "question" text = "<qt>%s</qt>" % text.replace("\n", " ") self.msgBox.setText(text) if detailed: self.msgBox.setDetailedText(unicode(longText)) if self.doCustom: button = None for index, text in enumerate(self.customButtons): button = self.msgBox.addButton(text, QMessageBox.ActionRole) if default is not None and default == index: self.msgBox.setDefaultButton(button) else: self.msgBox.setStandardButtons(buttons) if default == "no": default = QMessageBox.No elif default == "yes": default = QMessageBox.Yes elif default == "ok": default = QMessageBox.Ok else: default = None self.msgBox.setDefaultButton(default) self.dialog = Dialog(_(title), self.msgBox, closeButton=False, isDialog=True, icon=icon) self.dialog.resize(QSize(0, 0)) if run: self.run(destroyAfterRun) def run(self, destroyAfterRun=True): self.rc = self.dialog.exec_() if self.msgBox.clickedButton(): if not self.doCustom: if self.msgBox.clickedButton().text() in [_("Ok"), _("Yes")]: self.rc = 1 elif self.msgBox.clickedButton().text() in [ _("Cancel"), _("No") ]: self.rc = 0 else: if self.msgBox.clickedButton().text() in self.customButtons: self.rc = self.customButtons.index( self.msgBox.clickedButton().text()) if destroyAfterRun: self.dialog = None return self.rc