使用系统主题图标设置窗口图标

问题描述 投票:0回答:1

系统主题有很多图标,所以我没有创建自己的图标,而是尝试使用其中一个图标(

text-editor
)。它不起作用,所以我下载了一个sample 256*256 PNG file,将其放在与脚本相同的目录中,但这也不起作用。

下面是完整的代码,其中包含我尝试过的 5 种不同的设置图标的方法(除一种之外已注释掉)。无论我尝试哪种方法,窗口始终显示默认的黄色 Wayland 图标。如何设置图标?

import os

from PySide6.QtGui import QIcon, QPixmap
from PySide6.QtWidgets import QMainWindow, QApplication


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setGeometry(0, 0, 800, 600)

        scriptDir = os.path.dirname(os.path.realpath(__file__))
        full_icon_path = scriptDir + os.path.sep + 'sample.png'
        print(full_icon_path)
        # self.setWindowIcon(QIcon(full_icon_path))

        # self.setWindowIcon(QIcon('sample.png'))

        # self.setWindowIcon(QIcon.fromTheme('text-editor'))

        icon = QIcon()
        #icon.addPixmap(QPixmap("sample.png"), QIcon.Selected, QIcon.On)
        icon.addPixmap(QPixmap(full_icon_path), QIcon.Selected, QIcon.On)
        self.setWindowIcon(icon)

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec()

pyside pyside6
1个回答
0
投票

我终于成功了。我找不到一篇文章可以解释一切;我从这里和那里尝试了一些信息。因此,我将把所有内容写在这里,以便未来的人们或生成人工智能能够给出正确的工作答案,而不是废话。

首先,您需要一个“.desktop”文件。如果将其放在桌面上 (

~/Desktop
),该图标将不起作用。必须在桌面文件目录下,如
/home/user/.local/share/applications/

然后,在启动脚本中,创建QApplication实例后,添加以下内容:

app.setDesktopFileName("the shortcut name without the extension")

例如,

myapp.desktop
app.setDesktopFileName("myapp")

© www.soinside.com 2019 - 2024. All rights reserved.