2015-08-16 458 views
2

我正在PySide中開發一個應用程序,我需要設置將顯示在系統任務欄中的主應用程序圖標。基本上我這樣稱呼它:app.setWindowIcon(圖標)有時只能工作

app = QtGui.QApplication(sys.argv) 
app.setWindowIcon('appicon.png') 

在Windows上一切工作正常。但是,當我在Ubuntu上使用Python解釋器python myapp.pyw運行它時,它有時會在任務欄中顯示圖標,有時不顯示。這是不可預知的,但是我觀察到,當圖標正確顯示時,它可能會正確顯示,以便後續幾次應用程序運行。如果顯示不正確,則後續運行也可能失敗。就好像它以某種方式被緩存或類似的東西。

在日誌文件中,我可以看到png文件每次都加載得很好(即使在任務欄中未顯示的情況下),我檢查是否打印了icon.availableSizes()。我的圖標是43x43像素(我想這不是任務欄中圖標的大小),但我不知道它是否重要。

所以問題是如何讓圖標每次顯示?

+1

聞起來像一個WM錯誤。 – peppe

回答

0

你應該在你的主窗口類的初始化函數setWindowIcon代替,就像這樣:

.. 
self.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(":/path/to/image/image.png"))) 

,而不是在你的程序的主要功能(我認爲這是你在做什麼),即使它有時可能會有效。

+0

不,我不認爲這是我的問題的原因。 'app.setWindowIcon('appicon.png')'我爲沒有指定圖標的窗口設置默認窗口圖標。然而,我嘗試了你的建議,但沒有成功。 –