我对 PyQt 很陌生,所以请多多包涵。
这是我一直在做的事情的示例代码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import (QAction, QApplication,
QMenu,
QSystemTrayIcon,
)
def count():
for x in range(0, 200000):
print("Test " + str(x))
class TrayIcon(QSystemTrayIcon):
def __init__(self):
QSystemTrayIcon.__init__(self)
self.setIcon(QIcon('off.png'))
self.trayIconMenu = QMenu()
item = QAction('Count', self, triggered=self.counter)
self.trayIconMenu.addAction(item)
self.setContextMenu(self.trayIconMenu)
self.show()
def counter(self):
self.setIcon(QIcon('on.png'))
count()
self.setIcon(QIcon('off.png'))
if __name__ == '__main__':
app = QApplication(sys.argv)
trayicon = TrayIcon()
sys.exit(app.exec_())
我会想到,当单击“计数”系统托盘菜单项时,系统托盘图标何时会改变,count() 函数会打印,然后系统托盘图标会变回来。目前,我没有明显的图标更改(但 count() 函数确实运行)。如果我取出函数和第二个 setIcon() 语句,那么图标确实会改变。
任何帮助将不胜感激。