Qt界面点击叉按钮最小化守护程序
时间: 2023-09-12 17:10:00 浏览: 158
QT最小化托盘程序
在Qt中,当用户单击窗口的关闭按钮(叉按钮)时,窗口会被关闭并且窗口的应用程序会退出。如果您想要将窗口最小化到系统托盘而不是退出应用程序,您可以重写QWidget的closeEvent()函数来实现这个功能。
以下是一个示例:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QSystemTrayIcon, QMenu, QAction
from PyQt5.QtGui import QIcon
class MyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(QIcon('icon.png'))
self.tray_icon.setVisible(True)
self.tray_menu = QMenu(self)
self.show_action = QAction('Show', self)
self.quit_action = QAction('Quit', self)
self.tray_menu.addAction(self.show_action)
self.tray_menu.addAction(self.quit_action)
self.tray_icon.setContextMenu(self.tray_menu)
self.show_action.triggered.connect(self.showNormal)
self.quit_action.triggered.connect(self.quit)
def closeEvent(self, event):
event.ignore()
self.hide()
def quit(self):
self.tray_icon.setVisible(False)
QApplication.quit()
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在此示例中,我们创建了一个包含系统托盘图标的小部件,当用户单击关闭按钮时,我们将忽略关闭事件并将窗口隐藏到系统托盘。我们还在系统托盘中添加了一个菜单,其中“Show”行动会显示窗口,而“Quit”行动会退出应用程序并在系统托盘中删除托盘图标。
阅读全文