pyqt5 任务栏图标
时间: 2023-05-09 08:04:25 浏览: 359
PyQt5 能够通过 QSystemTrayIcon 类来创建一个任务栏图标,以方便用户随时控制应用程序。任务栏图标可以用于提醒用户有新消息、进入特定模式或临时关闭程序等。在此类应用程序中,“状态托盘图标”用于在系统通知区域中显示应用程序的状态。
要创建任务栏图标,我们首先要在代码中导入 QSystemTrayIcon 类。通常情况下,在主窗口中建立一个 QTimer 对象,通过 QTimer 定时器来检查新消息等,并显示在任务栏图标的 tooltip 信息中。
代码实现的方法如下:
```python
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QSystemTrayIcon, QMenu
from PyQt5.QtCore import QTimer
class SystemTrayIcon(QSystemTrayIcon):
def __init__(self, parent=None):
super(SystemTrayIcon, self).__init__(parent)
self.setIcon(QIcon('icon.ico'))
self.setToolTip('System Tray Icon Demo')
menu = QMenu()
action1 = menu.addAction("打开主窗口")
action2 = menu.addAction("退出")
self.activated.connect(self.onTrayIconActivated)
self.setContextMenu(menu)
def onTrayIconActivated(self, reason):
if reason == QSystemTrayIcon.DoubleClick:
self.parent().show()
if __name__ == '__main__':
app = QApplication([])
w = MainWindow()
tray = SystemTrayIcon(w)
timer = QTimer()
timer.timeout.connect(tray.showMessage('提示', '你有新消息'))
timer.start(5000)
tray.show()
app.exec_()
```
在上面的代码中,我们首先定义了一个 SystemTrayIcon 类,然后在该类中初始化了 QIcon、QMenu、QAction 对象等。在 QMenu 中,我们定义了如何在任务栏图标上右键单击时弹出的菜单,并使用了 self.activated 信号来定义单击任务栏图标时的操作。在 onTrayIconActivated 方法中,我们可以根据 reason 参数来判断是怎么单击的,并执行不同的操作。最后,我们在 main 函数中使用 QTimer 定时器来检查新消息,并显示在任务栏图标的 tooltip 信息中。
在 PyQt5 中创建一个任务栏图标并不难,但是如何实现具体的用户交互体验以及利用任务栏图标进行实际功能呢,这就需要开发者自己进行设计和思考了。
阅读全文