import sys
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication, QMenu
from PyQt5.QtGui import QIcon
class autoparse():
def __init__(self):
self.main()
def main(self):
app = QApplication(sys.argv)
self.trayIcon = QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
self.menu = QMenu()
self.autopconfig = self.menu.addAction('Config')
self.autopconfig.triggered.connect(self.swapicon)
self.trayIcon.setContextMenu(self.menu)
self.trayIcon.show()
sys.exit(app.exec_())
def swapicon(self):
QSystemTrayIcon.setIcon(QIcon("icons\python.ico"))
test1 = autoparse()
我可以让初始图标设置得很好,我可以通过为应用程序创建 2 个图标然后执行 self.trayIcon.hide() 和 self.newicon.show() 来解决这个问题,但我不觉得这是正确的方法。
Pycharm 显示一条通知,上面写着“预期的 QSystemTrayIcon,得到了 QIcon”,但如果我与之交换QIcon
,QSystemTrayIcon
它会说Qicon
丢失。SOOOOOO 我把它改成QSystemTrayIcon(QIcon("icons\python.ico")
它仍然说QIcon
是未填充的。似乎问题检测正在循环中。
当我运行 swapicon 函数时,按原样运行代码会给我“setIcon (self, QIcon):未绑定方法的第一个参数必须具有类型‘QSystemTrayIcon’”。如果我删除 QIcon 所以它只是 setIcon (file) 然后我得到“setIcon (self, QIcon): not enough arguments”