2017-07-08 10 views
0
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.newicon.show()しかし、私はこれを行う正しい方法だとは思わない。PyQt5 QSystemTrayIcon.setIconは、私は最初のアイコンがうまく設定して得ることができると私はアプリのための2つのアイコンを作成し、self.trayIcon.hideを行うことによって問題を回避できるトレイアイコン

Pycharmは予告「が期待QSystemTrayIcon、QIconを得ました」と言って示していますが、私はQSystemTrayIconQIconを交換する場合、それはQiconが欠落していると言います。 SOOOOOO QSystemTrayIcon(QIcon("icons\python.ico")に変更し、それでもQIconは埋められていないと言います。問題の検出が円で行われているようです。

コードをそのまま実行すると、setIcon(self、QIcon):swapicon関数を実行すると、バインドされていないメソッドの最初の引数に 'QSystemTrayIcon'型が指定されている必要があります。 QIconを削除してsetIcon(ファイル)を取得した場合、「setIcon(self、QIcon):引数が足りません」

答えて

1

QSystemTrayIconは静的な要素ではないため、インスタンスを使用する必要がありますあなたが変更する必要があります。

QSystemTrayIcon.setIcon(QIcon("icons\python.ico")) 

た:

self.trayIcon.setIcon(QIcon("icons\python.ico")) 

あなたはQSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)と混同されている可能性があり、これは、コンストラクタで、アイコンを受け取ることができます。

+0

これで解決しました。説明してくれてありがとう。 – sidnical

関連する問題

 関連する問題