如何在QT的主窗口上设置图标并进行操作

15

说实话,我不太明白资源文件以及如何使用它们来完成我的工作,因为只有部分给我讲解,我很困惑要把图标放在哪里以及如何使其在我的程序中可见。

setWindowIcon(QIcon(":/images/icon.png")); 

它没有显示出来,甚至没有显示错误。


你正在使用Qt Creator吗?如果是的话,请检查您的.pro文件中是否有这样一行:RESOURCES += sth.qrc。还要检查.qrc文件中是否有前缀:“/images”。如果一切就绪,请尝试设置别名并像这样使用它:QIcon(:“/alias”)。 - MKAROL
4个回答

25
创建一个名为resources.qrc的资源文件:
<!DOCTYPE RCC>
<RCC version="1.0">
  <qresource>
    <file>path/to/icon.png</file>
  </qresource>
</RCC>

请确保path/to/icon.png是一个实际的路径,相对于包含resources.qrc的目录
在您的.pro文件中,包含资源:
TARGET = your_app
TEMPLATE = app
QT += widgets 
RESOURCES += path/to/resources.qrc

再次确认path/to/resources.qrc存在,相对于包含项目文件的目录

编译后,您的资源将嵌入到可执行文件中。可以像这样访问它:

setWindowIcon(QIcon(":/path/to/icon.png"));

如果图标没有出现,请尝试这个stackoverflow问题这个问题
另一种方法是使用应用程序图标。这将为您的应用程序在桌面和开始菜单上设置应用程序图标,并在QMainWindowQDialogs的左上角设置图标。

想象一下,如果我将图标目录放在与我的项目相同的目录中,我该如何指定路径。像这样可以使用目录图像/images/icon.png吗? 对于资源文件,我发现可以通过添加到项目中直接创建它,方法是文件|新建文件,但如果它被添加到当前项目中,我该如何指定资源文件呢?至于设置应用程序图标,我没有任何想法,因为我是Qt Creator的新手。 - Parias Lunkamba Mukeba
使用 QIcon 时,像这样使用图像路径非常重要:app.setWindowIcon(QIcon(":/image.png")); 而不是像这样使用图像 URL:app.setWindowIcon(QIcon("qrc:/image.png")); 请注意,图像路径中没有 qrc - user3405291

6
有一个更简单的解决方案: 只需进入主窗口的 属性面板,然后将 WindowIcon 属性更改为您喜欢的图标即可。

6
使用QtCreator的设计师窗口会不会是最简单的方法?在右下角可以找到3个选项卡 - 点击最右边的一个,然后点击笔图标:
这将打开资源编辑器:
定义新的资源文件(在左侧窗格下方),然后添加“命名空间”(右侧窗格)并添加您的文件。您可以为它们设置别名,这样当您决定使用其他图标替换图标时,只需更改路径,只要别名保持不变即可。然后,您可以通过别名引用您的资源来在需要设置图标的位置设置您的图标,例如:
setWindowIcon(QIcon(":/HurBudClientGUI/plug"));
此外,请花时间阅读以下内容:http://doc.qt.io/qt-5/resources.htmlhttp://doc.qt.io/qt-5/designer-resources.html 祝你好运!

2

如何在Qt6中更改窗口图标。

还有这个:

Form.setWindowIcon(QtGui.QIcon('file path'))

它可行!


同样适用于Qt5(也适用于Qt4) - eyllanesc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接