系统主题有很多图标,所以我没有创建自己的图标,而是尝试使用其中一个图标(
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()
我终于成功了。我找不到一篇文章可以解释一切;我从这里和那里尝试了一些信息。因此,我将把所有内容写在这里,以便未来的人们或生成人工智能能够给出正确的工作答案,而不是废话。
首先,您需要一个“.desktop”文件。如果将其放在桌面上 (
~/Desktop
),该图标将不起作用。必须在桌面文件目录下,如/home/user/.local/share/applications/
。
然后,在启动脚本中,创建QApplication实例后,添加以下内容:
app.setDesktopFileName("the shortcut name without the extension")
例如,
myapp.desktop
和app.setDesktopFileName("myapp")
。