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()
我可以将初始图标设置得很好,我可以通过为应用程序创建两个图标,然后执行self.trayIcon.hide()和self.newicon.show()来解决这个问题,但我觉得这不是正确的方法
Pycharm显示了一个通知,上面写着“预期的QSystemTrayIcon,得到了QIcon”,但是如果我用QSystemTrayIcon
交换QIcon
,那么它会说Qicon
丢失了。所以我把它改成了QSystemTrayIcon(QIcon("icons\python.ico")
,它仍然说QIcon
还没有填满。似乎问题检测正在循环进行
按原样运行代码会给我“setIcon(self,QIcon):当我运行swapicon函数时,unbound方法的第一个参数的类型必须为'QSystemTrayIcon'。如果我删除了QIcon,所以它只是setIcon(文件),那么我会得到“setIcon(self,QIcon):没有足够的参数”
QSystemTrayIcon不是静态元素,因此要更改某些属性,必须使用实例,在您的情况下,必须更改:
致:
您可能被
QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
弄糊涂了,这是一个构造函数,可以接收图标相关问题 更多 >
编程相关推荐