0

我对 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() 语句,那么图标确实会改变。

任何帮助将不胜感激。

4

0 回答 0