我有一个简单的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()
添加回答
举报
0/150
提交
取消