为了账号安全,请及时绑定邮箱和手机立即绑定

PyQt:应用程序意外退出主循环

PyQt:应用程序意外退出主循环

不负相思意 2021-03-15 16:51:12
我有一个简单的PyQt应用程序,该应用程序带有任务栏图标,可以通过单击关闭按钮或任务栏图标从任务栏隐藏。可以从任务栏图标上下文菜单中关闭应用程序。用户在上下文菜单中单击“退出”后,将出现带有确认问题的模态窗口。如果用户单击“是”,则应用程序关闭,如果“否”,则应用程序继续运行。当主窗口隐藏时,即使用户在模式窗口中单击“否”,应用程序也将关闭,但是在不隐藏窗口的情况下,一切正常。对于任何模式窗口,例如某些信息,也会发生这种情况。我想QtGui.QMessageBox.question的父参数中有一些“魔术”,但我不知道如何处理。请帮助修复此烦人的错误。这是代码:import sysfrom datetime import datetimefrom PyQt4 import QtGui, QtCoreclass SampleWindow(QtGui.QWidget):    def __init__(self):        QtGui.QWidget.__init__(self)        self.init_ui()        self.tray_icon.activated.connect(self.tray_click)        self.show_window.triggered.connect(self.show_from_tray)        self.now_button.triggered.connect(self.info)        self.appexit.triggered.connect(self.app_close)    def init_ui(self):        self.setGeometry(300, 300, 250, 150)        self.setWindowTitle('Message box')        self.tray_icon = QtGui.QSystemTrayIcon()        self.tray_icon.setIcon(QtGui.QIcon('clock.ico'))        self.tray_icon.show()        self.iconMenu = QtGui.QMenu()        self.show_window = self.iconMenu.addAction("MyApp")        self.show_window.setDisabled(True)        self.iconMenu.addSeparator()        self.now_button = self.iconMenu.addAction("Now")        self.appexit = self.iconMenu.addAction("Exit")        self.tray_icon.setContextMenu(self.iconMenu)    def info(self):        now = str(datetime.now())        QtGui.QMessageBox.information(self, 'Now', now)    def app_close(self):        info_msg = "Are you sure to quit?"        reply = QtGui.QMessageBox.question(self,                                           'Exit',                                           info_msg,                                           QtGui.QMessageBox.Yes,                                           QtGui.QMessageBox.No)        if reply == QtGui.QMessageBox.Yes:            QtGui.QApplication.quit()    def closeEvent(self, event):        self.hide_to_tray()        event.ignore()
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 321 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信