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”,但如果我将与交换,则会说丢失。所以我将其更改为,它仍然说未填充。看起来问题检测正在循环中进行。
按原样运行代码时,当我运行swapicon函数时,会给出“setIcon(self, QIcon):未绑定方法的第一个参数必须具有类型'QSystemTrayIcon'”的错误。如果我删除QIcon,使其只是setIcon(file),那么我会得到“setIcon(self,QIcon):参数不足”的错误消息。