【发布时间】:2017-07-08 06:18:02
【问题描述】:
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"
【问题讨论】:
标签: python pyqt pyqt5 qsystemtrayicon