我有一個簡單的PyQt應(yīng)用程序,該應(yīng)用程序帶有任務(wù)欄圖標(biāo),可以通過單擊關(guān)閉按鈕或任務(wù)欄圖標(biāo)從任務(wù)欄隱藏??梢詮娜蝿?wù)欄圖標(biāo)上下文菜單中關(guān)閉應(yīng)用程序。用戶在上下文菜單中單擊“退出”后,將出現(xiàn)帶有確認問題的模態(tài)窗口。如果用戶單擊“是”,則應(yīng)用程序關(guān)閉,如果“否”,則應(yīng)用程序繼續(xù)運行。當(dāng)主窗口隱藏時,即使用戶在模式窗口中單擊“否”,應(yīng)用程序也將關(guān)閉,但是在不隱藏窗口的情況下,一切正常。對于任何模式窗口,例如某些信息,也會發(fā)生這種情況。我想QtGui.QMessageBox.question的父參數(shù)中有一些“魔術(shù)”,但我不知道如何處理。請幫助修復(fù)此煩人的錯誤。這是代碼: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
提交
取消