QSystemTrayIcon()用法
时间: 2023-06-30 17:07:04 浏览: 54
QSystemTrayIcon是一个可以将应用程序图标放置在系统托盘中的类,它可以让应用程序在后台运行,并且可以显示通知和菜单等功能。
以下是QSystemTrayIcon类的一些常用方法:
1. 构造函数:QSystemTrayIcon(QObject *parent = nullptr)
2. 显示系统托盘图标:void show()
3. 隐藏系统托盘图标:void hide()
4. 设置系统托盘图标:void setIcon(const QIcon &icon)
5. 设置系统托盘图标提示信息:void setToolTip(const QString &tip)
6. 发送通知消息:void showMessage(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
7. 设置系统托盘图标菜单:void setContextMenu(QMenu *menu)
以下是一个简单的示例代码,用于在系统托盘中显示一个应用程序图标,并在点击图标时弹出一个菜单:
```python
from PyQt5.QtWidgets import QApplication, QMenu, QAction, qApp
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QSystemTrayIcon
class SystemTrayIcon(QSystemTrayIcon):
def __init__(self, parent=None):
super(SystemTrayIcon, self).__init__(parent)
self.setIcon(QIcon("icon.png"))
self.setToolTip("My Application")
menu = QMenu(parent)
action1 = QAction("Action 1", parent)
action2 = QAction("Action 2", parent)
action3 = QAction("Exit", parent)
action3.triggered.connect(qApp.quit)
menu.addAction(action1)
menu.addAction(action2)
menu.addSeparator()
menu.addAction(action3)
self.setContextMenu(menu)
self.show()
if __name__ == "__main__":
app = QApplication([])
tray = SystemTrayIcon()
app.exec_()
```
在这个例子中,我们首先创建一个QSystemTrayIcon实例,并设置图标和提示信息。然后我们创建一个菜单,添加一些动作,并将其设置为系统托盘图标的上下文菜单。最后,我们显示系统托盘图标。