【发布时间】:2015-02-08 08:21:16
【问题描述】:
我在创建PyQt5 应用程序时遇到了一些奇怪的问题。关闭窗口会杀死整个应用程序,尽管我不需要它,因为我还有一个托盘图标。我在 Debian 上运行 python3,但我认为这并不重要。
C# 有一个解决方案。 Close a windows form without exiting the entire application
创建另一个表单,但不显示它。 PyQt可以吗?
import sys
import PyQt5.QtWidgets
class SettingsMenu(PyQt5.QtWidgets.QDialog):
def __init__(self, parent):
super().__init__()
self.setWindowTitle("Settings")
self.resize(300, 200)
class ContextMenu(PyQt5.QtWidgets.QMenu):
def __init__(self):
super().__init__()
self.settings_action = self.addAction('Settings')
self.settings_action.triggered.connect(self.display_settings_menu)
def display_settings_menu(self, event):
self.settings_menu = SettingsMenu()
self.settings_menu.show()
class TrayIcon(PyQt5.QtWidgets.QSystemTrayIcon):
def __init__(self):
super().__init__()
self.setIcon(PyQt5.QtGui.QIcon('icon.xpm'))
self.setContextMenu(ContextMenu())
if __name__ == '__main__':
app = PyQt5.QtWidgets.QApplication(sys.argv)
tray_icon = TrayIcon()
tray_icon.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python-3.x pyqt5