簡體   English   中英

在 PyQt 中設置 Windows 任務欄圖標

[英]Setting the Windows taskbar icon in PyQt

我正在 Python 的 PyQt4 中開發一個應用程序,但找不到如何更改任務欄圖標。 我在 Qt 的設計器中創建了我的 .ui 文件,我可以在其中更改windowIcon屬性。 但這不是我要找的。 我想更改 Windows 任務欄中應用程序圖標的外觀。 現在它是窗口圖標中的 Python 標志。

我在 SO: 鏈接上找到了一些信息,但對我幫助不大。

我試過了:

app = QtGui.QApplication([])
app.setWindowIcon(QtGui.QIcon('chip_icon_normal.png'))
app.exec_()

但圖標保持不變。

我想改變什么,顯示圖片:(這是在主窗口/對話框或應用程序上調用 setWindowIcon 完成的,如上所示。)

任務欄圖標更改

此問題是由 Windows 平台上處理任務欄圖標的某些特殊性引起的。

有關詳細信息,請參閱此答案以及使用ctypes的解決方法。

在我看來,問題可能是由於缺少大小合適的圖標造成的。 以下設置在 PyQT4 中對我有用:

# set app icon    
app_icon = QtGui.QIcon()
app_icon.addFile('gui/icons/16x16.png', QtCore.QSize(16,16))
app_icon.addFile('gui/icons/24x24.png', QtCore.QSize(24,24))
app_icon.addFile('gui/icons/32x32.png', QtCore.QSize(32,32))
app_icon.addFile('gui/icons/48x48.png', QtCore.QSize(48,48))
app_icon.addFile('gui/icons/256x256.png', QtCore.QSize(256,256))
app.setWindowIcon(app_icon)

我在 Windows 7 中有一個任務欄圖標,並且在所有窗口中都有正確的圖標,而沒有對 ui 文件進行任何更改。

您需要在窗口上調用 setWindowIcon(...),而不是在應用程序上。

這是一個對我有用的示例:

#!/usr/bin/env python3

import os
import sys
import subprocess
import os.path

from PyQt4 import QtGui
from PyQt4 import QtCore

class MyWin(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyWin, self).__init__(parent)
        self.setWindowTitle("My Window")
        self.setWindowIcon(QtGui.QIcon('test_icon.png'))
        self.show()

def main(args):
    app = QtGui.QApplication([])

    ww= MyWin()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main(sys.argv[1:])

對我來說,以下代碼適用於更改任務欄圖標和窗口圖標

win.setWindowIcon(QIcon('logo.png'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM