QSystemTrayIcon.setIcon 无法更改托盘图标
QSystemTrayIcon.setIcon not working to change the tray icon
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 显示一条通知说“Expected QSystemTrayIcon, got QIcon”但是如果我用 QSystemTrayIcon
交换 QIcon
然后它说 Qicon
丢失了。 SOOOOOO 我将其更改为 QSystemTrayIcon(QIcon("icons\python.ico")
,但它仍然显示 QIcon
未填充。问题检测好像在兜圈子
运行 当我 运行 swapicon 函数时,代码原样给了我“setIcon (self, QIcon): 未绑定方法的第一个参数必须具有类型 'QSystemTrayIcon'”。如果我删除 QIcon 所以它只是 setIcon(文件)然后我得到“setIcon(self,QIcon):没有足够的参数”
QSystemTrayIcon 不是静态元素,因此要更改一些 属性 您必须使用该实例,在您的情况下您必须更改:
QSystemTrayIcon.setIcon(QIcon("icons\python.ico"))
至:
self.trayIcon.setIcon(QIcon("icons\python.ico"))
你可能对QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
感到困惑,这是一个构造函数,可以接收图标。
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 显示一条通知说“Expected QSystemTrayIcon, got QIcon”但是如果我用 QSystemTrayIcon
交换 QIcon
然后它说 Qicon
丢失了。 SOOOOOO 我将其更改为 QSystemTrayIcon(QIcon("icons\python.ico")
,但它仍然显示 QIcon
未填充。问题检测好像在兜圈子
运行 当我 运行 swapicon 函数时,代码原样给了我“setIcon (self, QIcon): 未绑定方法的第一个参数必须具有类型 'QSystemTrayIcon'”。如果我删除 QIcon 所以它只是 setIcon(文件)然后我得到“setIcon(self,QIcon):没有足够的参数”
QSystemTrayIcon 不是静态元素,因此要更改一些 属性 您必须使用该实例,在您的情况下您必须更改:
QSystemTrayIcon.setIcon(QIcon("icons\python.ico"))
至:
self.trayIcon.setIcon(QIcon("icons\python.ico"))
你可能对QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
感到困惑,这是一个构造函数,可以接收图标。