簡體   English   中英

使用 Pyside6 缺少主 Window 圖標

[英]Main Window icon missing using Pyside6

我可能遺漏了一些明顯的東西,但下面的代碼似乎沒有在 window 標題欄中顯示 app_icon。 app_icon.png 是一個 24x24px 的文件,與 main.py 和 ui_mainwindow.py 位於同一文件夾中。 Qt 文檔似乎暗示PySide6.QtGui.QIcon(fileName)是一種有效的方法,但也許我誤解了它。 除了這個問題,應用程序的 rest 工作正常。

from PySide6.QtGui import QIcon, QScreen
from PySide6.QtWidgets import QApplication, QFileDialog, QMainWindow
from ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # Change a few things
        screenSize = QScreen.availableGeometry(QApplication.primaryScreen())
        winXpos = ((screenSize.width() - self.width())/2)
        winYpos = ((screenSize.height() - self.height())/2)
        self.move(winXpos, winYpos)
        self.setWindowTitle('App - Main Window')
        self.setWindowIcon(QIcon('app_icon.png'))
        ...rest of the code...

將其更改為以下內容會導致錯誤

self.setWindowIcon(QIcon.addFile('app_icon.png'))
TypeError: descriptor 'addFile' for 'PySide6.QtGui.QIcon' objects doesn't apply to a 'str' object

這是在 linux 上,使用 Python3.8.10 和 PySide6。 該表單與 Qt Creator 放在一起,並使用 pyside6-uic 將.ui 轉換為.py。 有什么想法我哪里出錯了嗎?

我的猜測是因為addFile不是 static function,所以直接從QIcon class 調用它是行不通的。 相反,我認為您需要實例化一個QIcon object 並將addFile應用於它:

self.setWindowIcon(QIcon().addFile('app_icon.png'))

暫無
暫無

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

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