我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用PyQt5.QtWidgets.QMessageBox.Yes()。
def yes_no_cancel_dlg(parent,text): if parent!=None: msgBox = QMessageBox(parent) msgBox.setIcon(QMessageBox.Question) msgBox.setText("Question") msgBox.setInformativeText(text) msgBox.setStandardButtons(QMessageBox.Yes| QMessageBox.No| QMessageBox.Cancel ) msgBox.setDefaultButton(QMessageBox.No) reply = msgBox.exec_() if reply == QMessageBox.Yes: return "yes" elif reply == QMessageBox.No: return "no" else: return "cancel" else: reply = input(text+"y/n/c") if reply == "y": return "yes" elif reply == "n": return "no" else: return "cancel"
def __init__(self): super(MainFrame, self).__init__() # ??qt????????????? self.clipboard = QtGui.QGuiApplication.clipboard() self.setupUi(self) self.connects() # ??????????????focusoutevent??????bug self.setFocus() self.setFocusPolicy(QtCore.Qt.StrongFocus) # todo: ????? self.query = Query() # self.setWindowFlags(QtCore.Qt.Popup) self.player = QMediaPlayer() # ????????? (????) self.open = True # ???? has_new, r_version = version_check() if has_new: QMessageBox.question(self, '????', 'Github??????? %s\n https://github.com/FindHao/ciba/releases' % r_version, QMessageBox.Yes, QMessageBox.No)
def _save_as(self): path, ok = QFileDialog.getSaveFileName(self.modeler, caption="Save OPC UA XML", filter="XML Files (*.xml *.XML)") if ok: if os.path.isfile(path): reply = QMessageBox.question( self.modeler, "OPC UA Modeler", "File already exit, do you really want to save to this file?", QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel ) if reply != QMessageBox.Yes: return if self._last_model_dir != os.path.dirname(path): self._last_model_dir = os.path.dirname(path) self.settings.setValue("last_model_dir", self._last_model_dir) self._model_mgr.save_model(path)
def closeEvent(self, event): """ close window event :return: """ if not hasattr(self, 'case_edit_window'): # case_edit_window is not exist self.close() return if not self.case_edit_window.isVisible(): # case_edit_window is not visible self.close() return # signal for case_edit_window's closeEvent self.case_edit_window.close_cancel_signal.connect(self.editor_close_ignore, Qt.DirectConnection) # case_edit_window is visible reply = self.message_box.question(self, "Confirm Close?", "The editor is opened, still close?", QMessageBox.Yes | QMessageBox.Cancel) if reply == QMessageBox.Yes: self.is_editor_close_cancel = False self.case_edit_window.close() if self.is_editor_close_cancel: # editor close is canceled event.ignore() return self.close() else: event.ignore()
def conflict_tags_submit(self): """ submit conflict tags :return: """ updata_tag_message_list = self.get_table_data() again_conflict_data = self.get_conflict_data(updata_tag_message_list) self.wait_dialog = WaitDialog(self) self.wait_dialog.setWindowModality(Qt.ApplicationModal) if again_conflict_data: message = str(again_conflict_data) + " has existed, whether to continue to submit" reply = QMessageBox.information(self, "merge conflicts", message, QMessageBox.Yes | QMessageBox.No) if reply == QMessageBox.Yes: self.wait_dialog.show() thread = Thread(target=self.case_data_manager.merge_conflict_data_callback, args=(updata_tag_message_list, self.callback)) thread.start() else: self.wait_dialog.show() thread = Thread(target=self.case_data_manager.merge_conflict_data_callback, args=(updata_tag_message_list, self.callback)) thread.start()
def closeEvent(self, close_even): if self.tag_id_line_edit.text() != '': if self.tag.name != self.tag_name_line_edit.text() or self.tag.description != self.tag_description_text_edit.toPlainText(): reply = QMessageBox.information(self, 'close window', 'Changes not saved, confirm close?', QMessageBox.Yes, QMessageBox.No) if reply != QMessageBox.Yes: close_even.ignore() return else: if self.tag_id_line_edit.text() != '' or self.tag_description_text_edit.toPlainText() != '': reply = QMessageBox.information(self, 'close window', 'Changes not saved, confirm close?', QMessageBox.Yes, QMessageBox.No) if reply != QMessageBox.Yes: close_even.ignore() return self.refresh_signal.emit()
def forget_creds(self): """ Description: Invoked when the user clicks on the 'Forget credentials' button in the toolbar. Arguments: None Returns: Nothing """ global conf self.lastclick = int(time()) # Last click timestamp update reply = QMessageBox.question(None, _('apptitle') + ': ' + _('confirm'), _('confirm_forget_creds'), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: remove(conf.USERCREDSFILE) self.forgetCredsAction.setDisabled(True) QMessageBox.information(None, _('apptitle') + ': ' + _('success'), _('creds_forgotten'))
def confirm_quit(self): """ Description: Asks for confirmation from the user's side to close the app. Arguments: None Returns: True if the user wants to close the app, False otherwise. """ global conf reply = QMessageBox.question(None, _('apptitle') + ': ' + _('confirm'), _('confirm_quit'), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: self.logout(reconnect=False) return True else: return False
def upgrade(self): response = QMessageBox.question( self.anki.window(), 'AnkiConnect', 'Upgrade to the latest version?', QMessageBox.Yes | QMessageBox.No ) if response == QMessageBox.Yes: data = download(URL_UPGRADE) if data is None: QMessageBox.critical(self.anki.window(), 'AnkiConnect', 'Failed to download latest version.') else: path = os.path.splitext(__file__)[0] + '.py' with open(path, 'w') as fp: fp.write(makeStr(data)) QMessageBox.information(self.anki.window(), 'AnkiConnect', 'Upgraded to the latest version, please restart Anki.') return True return False
def my_close(self): settings = constants.SETTINGS not_show = settings.value('not_show_close_dialog', False, type=bool) if not not_show: cb = QCheckBox("Do not show this again.") msgbox = QMessageBox(QMessageBox.Question, "Confirm close", "Are you sure you want to close?") msgbox.addButton(QMessageBox.Yes) msgbox.addButton(QMessageBox.No) msgbox.setDefaultButton(QMessageBox.No) msgbox.setCheckBox(cb) reply = msgbox.exec() not_show_again = bool(cb.isChecked()) settings.setValue("not_show_close_dialog", not_show_again) self.not_show_again_changed.emit() if reply != QMessageBox.Yes: return self.closed.emit(self)
def save_protocol(self): for msg in self.proto_analyzer.messages: if not msg.decoder.is_nrz: reply = QMessageBox.question(self, "Saving of protocol", "You want to save this protocol with an encoding different from NRZ.\n" "This may cause loss of information if you load it again.\n\n" "Save anyway?", QMessageBox.Yes | QMessageBox.No) if reply != QMessageBox.Yes: return else: break text = "protocol" filename = FileOperator.get_save_file_name("{0}.proto.xml".format(text), caption="Save protocol") if not filename: return self.proto_analyzer.to_xml_file(filename=filename, decoders=self.decodings, participants=self.project_manager.participants, write_bits=True)
def save_before_close(self): if not self.already_saved and self.device.current_index > 0: reply = QMessageBox.question(self, self.tr("Save data?"), self.tr("Do you want to save the data you have captured so far?"), QMessageBox.Yes | QMessageBox.No | QMessageBox.Abort) if reply == QMessageBox.Yes: self.on_save_clicked() elif reply == QMessageBox.Abort: return False try: sample_rate = self.device.sample_rate except: sample_rate = 1e6 self.files_recorded.emit(self.recorded_files, sample_rate) return True
def process_delete(self, process): """ Handle the removal of a B3 process. """ msgbox = QMessageBox() msgbox.setIcon(QMessageBox.Question) msgbox.setWindowTitle('CONFIRM') msgbox.setText('Are you sure?') msgbox.setInformativeText('Do you want to remove %s?' % process.name) msgbox.setStandardButtons(QMessageBox.No|QMessageBox.Yes) msgbox.setDefaultButton(QMessageBox.No) msgbox.layout().addItem(QSpacerItem(300, 0, QSizePolicy.Minimum, QSizePolicy.Expanding), msgbox.layout().rowCount(), 0, 1, msgbox.layout().columnCount()) msgbox.exec_() if msgbox.result() == QMessageBox.Yes: if process.state() != QProcess.NotRunning: self.process_shutdown(process) process.delete() self.repaint()
def importmultisig(self): n = self.spinBox_multisign.value() addresses = str(self.plainTextEdit_multisigkeys.toPlainText()).splitlines() for i in range(len(addresses)): if addresses[i] in self.pubkeys: addresses[i] = self.pubkeys[addresses[i]] self.pushButton_importmultisig.setEnabled(False) res = self.callzcash('addmultisigaddress', [n,addresses]) multisigaddress = str(self.lineEdit_multisigaddress.text()) messagebox = QMessageBox() messagebox.setText("Importing address.\n\nDo you want to rescan the blockchain? \n\n Rescanning the blockchain allows to use the funds sent to the multisig address before this moment but will take several minutes. The program will be irresponsive during that time.\n\n If you don't rescan the blockchain, you will still be able to create payment orders for the funds that will be received in the future, or to sign orders created by other signers.") messagebox.setWindowTitle("") messagebox.setStandardButtons(QMessageBox.Yes | QMessageBox.No) rescan = messagebox.exec_() == QMessageBox.Yes self.callzcash('importaddress', [multisigaddress, "", rescan]) self.update()
def cancel_update(self): if not self.finish: reply = QMessageBox.question( self, '????', '???????', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: pl.kill_thread(name='update') self.timer.stop() STATUS.UPDATE, STATUS.UPDATE_ALL, STATUS.UPDATE_NOW = None, 0, 0 self.close() else: self.close() if STATUS.UPDATE_DLG: STATUS.UPDATE_DLG.close() STATUS.UPDATE_DLG = None if STATUS.MAIN: STATUS.MAIN.user_info_table_update() STATUS.MAIN.show_update_result()
def onDelete(self): student = self.selection if not student: return confirm = QMessageBox.warning(QtWidgets.QWidget(), "????", "????????", QMessageBox.Yes | QMessageBox.No) if confirm == QMessageBox.Yes: item = self.tableIndex[student] n = self.studentTable.topLevelItemCount() for i in range(0, n): if self.studentTable.topLevelItem(i) == item: self.studentTable.takeTopLevelItem(i) self.tableList.remove(student) self.tableIndex.pop(student) break public.studentManager.delete(student)
def delete_endpoint(self): if QMessageBox.question(self.view, ' ', 'Delete this endpoint?') == QMessageBox.Yes: path = str(BASE_PATH / 'endpoints' / (urlparse(self.base_url).netloc + '.json')) with open(path) as fd: json = load(fd, object_pairs_hook=OrderedDict) json.remove(self.endpoint) with open(path, 'w') as fd: dump(json, fd, ensure_ascii=False, indent=4) if not json: remove(path) self.load_endpoints()
def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore()
def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore() # def quitApp(self): # QCoreApplication.instance().quit()
def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore()
def Exit(self): reply = QMessageBox.question(self, "Exit?", "Would you like to exit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: sys.exit() # sys.exit()
def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: if success==1: self.Connect.ssh.close() event.accept() else: event.ignore()
def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) buttonReply = QMessageBox.question(self, 'PyQt5 message', "Do you want to save?", QMessageBox.YesToAll | QMessageBox.No | QMessageBox.Cancel, QMessageBox.Cancel) print(int(buttonReply)) if buttonReply == QMessageBox.Yes: print('Yes clicked.') if buttonReply == QMessageBox.No: print('No clicked.') if buttonReply == QMessageBox.Cancel: print('Cancel') self.show()
def yes_no_dlg(parent,text): msgBox = QMessageBox(parent) msgBox.setIcon(QMessageBox.Question) msgBox.setText("Question") msgBox.setInformativeText(text) msgBox.setStandardButtons(QMessageBox.Yes| QMessageBox.No ) msgBox.setDefaultButton(QMessageBox.No) reply = msgBox.exec_() if reply == QMessageBox.Yes: return True else: return False
def yes_no_cancel_dlg(parent,text): msgBox = QMessageBox(parent) msgBox.setIcon(QMessageBox.Question) msgBox.setText("Question") msgBox.setInformativeText(text) msgBox.setStandardButtons(QMessageBox.Yes| QMessageBox.No| QMessageBox.Cancel ) msgBox.setDefaultButton(QMessageBox.No) reply = msgBox.exec_() if reply == QMessageBox.Yes: return "yes" elif reply == QMessageBox.No: return "no" else: return "cancel"
def show_invite_form(self): nodedir = os.path.join(config_dir, 'default') if os.path.isdir(nodedir): reply = QMessageBox.question( self, "Tahoe-LAFS already configured", "Tahoe-LAFS is already configured on this computer. " "Do you want to overwrite your existing configuration?") if reply == QMessageBox.Yes: shutil.rmtree(nodedir, ignore_errors=True) else: return self.invite_form = InviteForm() self.invite_form.show() self.invite_form.raise_()
def try_close_model(self): if self._model_mgr.modified: reply = QMessageBox.question( self.modeler, "OPC UA Modeler", "Model is modified, do you really want to close model?", QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel ) if reply != QMessageBox.Yes: return False self._model_mgr.close_model(force=True) return True
def confirm_quit(self): """ Description: Confirm whether to quit or not the app. This option must be present in case the user cannot authenticate against oVirt, in which case the main window won't be shown but the application will exit instead. Arguments: None Returns: Nothing, just quits if user confirms. """ cq = QMessageBox.question(self, _('apptitle') + ': ' + _('confirm'), _('confirm_quit'), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if cq == QMessageBox.Yes: quit()
def change_status(self, rowid): """ Description: If the user clicks on the column which determines VM's status, we'll allow them to change VM's status. This method shows a confirmation dialog and if accepted, it will be notified to oVirt. Arguments: The row id that has been clicked. This relationship is stored using the VmData class. Returns: Nothing """ global conf self.lastclick = int(time()) # Last click timestamp update curvmstatus = self.vmdata[rowid].vmstatus if curvmstatus != 'up' and curvmstatus != 'down': QMessageBox.warning(None, _('apptitle') + ': ' + _('warning'), _('vm_in_unchangeable_status')) return reply = QMessageBox.question(None, _('apptitle') + ': ' + _('confirm'), '%s <b>%s</b>. %s: <b>%s</b>.' % (_('current_vm_status'), self.current_vm_status(curvmstatus), _('confirm_vm_status_change'), self.toggle_vm_action(curvmstatus)), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: try: vm = conf.OVIRTCONN.vms.get(id=self.vmdata[rowid].vmid) except ConnectionError: QMessageBox.critical(None, _('apptitle') + ': ' + _('error'), _('unexpected_connection_drop')) quit() if curvmstatus == 'up': try: vm.shutdown() QMessageBox.information(None, _('apptitle') + ': ' + _('success'), _('shutting_down_vm')) except RequestError: QMessageBox.warning(None, _('apptitle') + ': ' + _('warning'), _('vm_in_unchangeable_status')) if curvmstatus == 'down': try: vm.start() QMessageBox.information(None, _('apptitle') + ': ' + _('success'), _('powering_up_vm')) except RequestError: QMessageBox.warning(None, _('apptitle') + ': ' + _('warning'), _('vm_in_unchangeable_status'))
def user_not_valid(self, user): text = '%s is not a valid user. Would you like to remove this user from the user list?' % user reply = message.information(self, 'Invalid User', text, message.Yes, message.No) return reply == message.Ok
def subreddit_not_valid(self, sub): text = '%s is not a valid subreddit. Would you like to remove this sub from the subreddit list?' % sub reply = message.information(self, 'Invalid Subreddit', text, message.Yes, message.No) return reply == message.Ok
def unsaved_close_message(self): text = "Save changes to Downloader For Reddit?" reply = message.question(self, "Save Changes?", text, message.Yes | message.No | message.Cancel, message.Cancel) if reply == message.Yes: return "SAVE" elif reply == message.No: return "CLOSE" else: return "CANCEL"
def sigint_handler(*args): """Handler for the SIGINT signal.""" sys.stderr.write('\r') if QMessageBox.question(None, '', "Are you sure you want to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes: QApplication.quit()
def _configurationMismatchMessageCallback(self, button): def delayedCallback(): if button == QMessageBox.Yes: self.startPrint() else: Application.getInstance().showPrintMonitor.emit(False) # For some unknown reason Cura on OSX will hang if we do the call back code # immediately without first returning and leaving QML's event system. QTimer.singleShot(100, delayedCallback)
def materialHotendChangedMessage(self, callback): Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Changes on the Printer"), i18n_catalog.i18nc("@label", "Would you like to update your current printer configuration into Cura?"), i18n_catalog.i18nc("@label", "The PrintCores and/or materials on your printer were changed. For the best result, always slice for the PrintCores and materials that are inserted in your printer."), buttons=QMessageBox.Yes + QMessageBox.No, icon=QMessageBox.Question, callback=callback )
def save_all(self): if self.num_frames == 0: return settings = constants.SETTINGS try: not_show = settings.value('not_show_save_dialog', type=bool, defaultValue=False) except TypeError: not_show = False if not not_show: cb = QCheckBox("Don't ask me again.") msg_box = QMessageBox(QMessageBox.Question, self.tr("Confirm saving all signals"), self.tr("All changed signal files will be overwritten. OK?")) msg_box.addButton(QMessageBox.Yes) msg_box.addButton(QMessageBox.No) msg_box.setCheckBox(cb) reply = msg_box.exec() not_show_again = cb.isChecked() settings.setValue("not_show_save_dialog", not_show_again) self.not_show_again_changed.emit() if reply != QMessageBox.Yes: return for f in self.signal_frames: if f.signal is None or f.signal.filename == "": continue f.signal.save()
def slot_startDownload(self): url = self.urlL_ineEdit.text() path = self.save_path_lineEdit.text() type = self.comboBox.currentIndex() try: if url is None or url.strip() == "": QMessageBox.information(self, "??", "????????", QMessageBox.Yes) elif not re.match('http:\/\/.*?\/', url): QMessageBox.information(self, "??", "????????", QMessageBox.Yes) elif path is None or path.strip() == "": QMessageBox.information(self, "??", "??????????", QMessageBox.Yes) else: html = GetMezi._get_html(url) soup = GetMezi._get_soup(html) if self.TYPE_MORE == type: albums = GetMezi._get_img_dirs(soup) if None == albums: QMessageBox.information(self, "??", "???????????????????????????????????????????", QMessageBox.Yes) else: QMessageBox.information(self, "??", "?????...", QMessageBox.Yes) self.downloadButton.setDisabled(True) self.bwThread = AlbumsThread(path, albums) self.bwThread.finishSignal.connect(self.resetDownloadBtn) self.bwThread.start() elif self.TYPE_SINGLE == type: title = GetMezi._get_page_title(soup) QMessageBox.information(self, "??", "?????...", QMessageBox.Yes) self.downloadButton.setDisabled(True) self.bwThread = SingleAlbumThread(path, title, url) self.bwThread.finishSignal.connect(self.resetDownloadBtn) self.bwThread.start() except Exception as e: print(e) QMessageBox.information(self, "??", "???‘????’?‘????’?????\n ??????????????\n ???http://www.mzitu.com/ \n ? http://www.mzitu.com/xinggan \n ????????????????\n http://www.mzitu.com/75636 ", QMessageBox.Yes)
def resetDownloadBtn(self): self.downloadButton.setDisabled(False) QMessageBox.information(self, "??", "????", QMessageBox.Yes)
def __init_storage(self): """ Initialize the connection with the SQLite database. :raise DatabaseError: if the database schema is not consistent. """ is_new_database = not os.path.isfile(B3_STORAGE) self.storage = sqlite3.connect(B3_STORAGE, check_same_thread=False) self.storage.isolation_level = None # set autocommit mode self.storage.row_factory = sqlite3.Row # allow row index by name if is_new_database: # create new schema self.__build_schema() else: # check database schema LOG.debug('checking database schema') cursor = self.storage.cursor() cursor.execute("""SELECT * FROM sqlite_master WHERE type='table'""") tables = [row[1] for row in cursor.fetchall()] cursor.close() if 'b3' not in tables: LOG.debug('database schema is corrupted: asking the user if he wants to rebuild it') msgbox = QMessageBox() msgbox.setIcon(QMessageBox.Critical) msgbox.setText('The database schema is corrupted and must be rebuilt. Do you want to proceed?') msgbox.setInformativeText('NOTE: all the previously saved data will be lost!') msgbox.setStandardButtons(QMessageBox.No | QMessageBox.Yes) msgbox.setDefaultButton(QMessageBox.No) msgbox.exec_() if msgbox.result() == QMessageBox.No: # critical will raise an exception which will terminate the QApplication LOG.critical('could not start B3: database schema is corrupted!') try: os.remove(B3_STORAGE) self.__build_schema() except Exception, err: raise LOG.critical('could initialize SQLite database: %s (%s): make sure B3 has permissions to ' 'operate on this file, or remove it manually', B3_STORAGE, err)
def _warn_existing_output_dir(self, path): path = os.path.abspath(path) reply = QMessageBox.question(self, "Reuse previous data", "Intermediate files were found at\n{0}\nDo you want to reuse them?".format(path), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) reuse = int(reply) == QMessageBox.Yes if not reuse: shutil.rmtree(path)
def confirm_on_empty(self, name): if not self._has_data: reply = QMessageBox.question(self, "Confirm Save Plot", "{0} plot is empty\nAre you sure you want to save it?".format(name), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) return int(reply) == QMessageBox.Yes return True
def run_auto_login(self): STATUS.RUN = True pl.run_thread([(auto_login, ())], name='auto_run', is_lock=False) QMessageBox.information(self, '??', '??????', QMessageBox.Yes)
def stop_auto_login(self): STATUS.RUN = False pl.kill_thread(name='auto_run') QMessageBox.information(self, '??', '??????', QMessageBox.Yes)
def show_update_result(self): title = '????' msg = '????? ??%s?????' % self.num QMessageBox.information(self, title, msg, QMessageBox.Yes)
def closeEvent(self, event): ''' Closing endPlate window. ''' ui_input = self.getuser_inputs() self.save_inputs(ui_input) reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes, QMessageBox.No) if reply == QMessageBox.Yes: self.closed.emit() event.accept() else: event.ignore() # ********************************* Help Action *********************************************************************************************
def deleteFile(self, menu): # show Warning message to the user. # check persepolis_setting first! # perhaps user checked "do not show this message again" delete_warning_message = self.persepolis_setting.value( 'MainWindow/delete-warning', 'yes') if delete_warning_message == 'yes': self.msgBox = QMessageBox() self.msgBox.setText("<b><center>This operation will delete \ downloaded files from your hard disk<br>PERMANENTLY!</center></b>") self.msgBox.setInformativeText("<center>Do you want to continue?</center>") self.msgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No) self.msgBox.setIcon(QMessageBox.Warning) dont_show_checkBox = QtWidgets.QCheckBox("don't show this message again") self.msgBox.setCheckBox(dont_show_checkBox) reply = self.msgBox.exec_() # if user checks "do not show this message again!", change persepolis_setting! if self.msgBox.checkBox().isChecked(): self.persepolis_setting.setValue( 'MainWindow/delete-warning', 'no') # do nothing if user clicks NO if reply != QMessageBox.Yes: return # if checking_flag is equal to 1, it means that user pressed remove or # delete button or ... . so checking download information must be # stopped until job is done! if checking_flag != 2: wait_check = WaitThread() self.threadPool.append(wait_check) self.threadPool[len(self.threadPool) - 1].start() self.threadPool[len(self.threadPool) - 1].QTABLEREADY.connect(self.deleteFile2) else: self.deleteFile2()
def deleteSelected(self, menu): # showing Warning message to the user. # checking persepolis_setting first! # perhaps user was checking "do not show this message again" delete_warning_message = self.persepolis_setting.value( 'MainWindow/delete-warning', 'yes') if delete_warning_message == 'yes': self.msgBox = QMessageBox() self.msgBox.setText("<b><center>This operation will delete \ downloaded files from your hard disk<br>PERMANENTLY!</center></b>") self.msgBox.setInformativeText("<center>Do you want to continue?</center>") self.msgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No) self.msgBox.setIcon(QMessageBox.Warning) dont_show_checkBox = QtWidgets.QCheckBox("don't show this message again") self.msgBox.setCheckBox(dont_show_checkBox) reply = self.msgBox.exec_() # if user checks "do not show this message again!", change persepolis_setting! if self.msgBox.checkBox().isChecked(): self.persepolis_setting.setValue( 'MainWindow/delete-warning', 'no') # do nothing if user clicks NO if reply != QMessageBox.Yes: return # if checking_flag is equal to 1, it means that user pressed remove or # delete button or ... . so checking download information must be # stopped until job is done! if checking_flag != 2: wait_check = WaitThread() self.threadPool.append(wait_check) self.threadPool[len(self.threadPool) - 1].start() self.threadPool[len(self.threadPool) - 1].QTABLEREADY.connect(self.deleteSelected2) else: self.deleteSelected2()