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(),但我不覺得這是正確的做法。PyQt5 QSystemTrayIcon.setIcon沒有努力改變托盤圖標
Pycharm顯示通知說「預期的QSystemTrayIcon,得到了QIcon」,但如果我將QIcon
換成QSystemTrayIcon
那麼它說Qicon
丟失。 SOOOOOO我將它更改爲QSystemTrayIcon(QIcon("icons\python.ico")
並且仍然表示QIcon
未填充。這似乎是問題檢測正在進行。
按照原樣運行代碼給了我「setIcon(self,QIcon):當我運行swapicon函數時,未綁定方法的第一個參數必須具有類型'QSystemTrayIcon'」。如果我刪除QIcon所以它只是setIcon(文件),然後我得到「setIcon(自我,QIcon):沒有足夠的參數」
這清除了它。感謝您的解釋。 – sidnical