2016-03-08 24 views
2
import sys 
import os 
from PyQt5.QtWidgets import QApplication, QWidget 
from PyQt5.QtGui import QIcon 

class Example(QWidget): 
    def __init__(self): 
     super().__init__() 
     self.initUI() 

    def initUI(self): 
     self.setGeometry(300,300,300,220) 
     self.setWindowTitle('Icon') 

     path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png') 
     self.setWindowIcon(QIcon(path)) 

     self.show() 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 

我也使用相對路徑一樣 self.setWindowIcon(QIcon('icon_1.png')) 我相信icon_1.png是在directory.But結果總是這樣:爲什麼在Mac上使用PyQt5無法添加圖標?

with no icon in the window and Dock

那麼,我都做了一些錯誤?我是PyQt和StackOverflow的新手,還有英文...希望帖子有效。

預先感謝您。

+0

您是否收到任何錯誤訊息? – lrnzcig

+0

@Irnzcig不,我使用eclipse + pydev,程序運行時沒有任何錯誤或警告(控制檯非常空白) – ljy

回答

4

setWindowIconQApplication的方法,不爲QWidget和朋友

這裏是你的測試腳本的工作版本:

import sys 
import os 
from PyQt5.QtWidgets import QApplication, QWidget 
from PyQt5.QtGui import QIcon 

class Example(QWidget): 
    def __init__(self): 
     super(Example, self).__init__() 
     self.initUI() 

    def initUI(self): 
     self.setGeometry(300,300,300,220) 
     self.setWindowTitle('Icon') 
     self.show() 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png') 
    app.setWindowIcon(QIcon(path)) 
    ex = Example() 
    sys.exit(app.exec_()) 
+0

對於桌面上的圖標顯示,例如,有一個依賴於平臺的技術[這裏](http:///doc.qt.io/qt-5/appicon.html)。 –

+0

謝謝!你是對的,問題就解決了。我按照教程,但似乎它也有一些錯誤,我也應該閱讀文檔。 – ljy

1

嘗試使用QPixmap('myLogo.png')QIcon()調用中。剛剛在Mac上試過這個,並正在爲我工​​作=]。

相關問題