如何在Qt中设置应用程序图标

4

我在尝试为我的QT应用程序设置图标时遇到了一些问题。

图标的名称为“room.ico”,并位于与源文件相同的目录中。

以下是代码:

#include <QApplication>
#include <QWidget>

int main( int argc, char *argv[ ] )
{
   QApplication app( argc, argv) ;
   QWidget fenetre;
   fenetre.setWindowIcon(QIcon("room.ico")); // Nothing happens
   fenetre.setWindowTitle("Heloo");    
   fenetre.show();
   return app.exec() ;
}

我尝试在.pro文件中添加win32:RC_ICONS += room.ico,但没有成功。我还尝试使用"./room.ico",但仍然没有图标。

我尝试使用以下内容:

QPixmap pixmap = QPixmap ("room.ico");
fenetre.setWindowIcon(QIcon(pixmap));

猜猜发生了什么!!!它没有运行……我只是 QT 的新手 :p

欢迎提出任何建议,谢谢

1个回答

6

QT的文档中关于QWindow::setWindowIcon应该是你需要的。

  1. 制作一个图标文件(你似乎已经完成了: room.ico
  2. 将图标文件添加到QT资源文件(.qrc.rc),然后将其添加到项目中(文档中讨论了如何做到这一点)
  3. 使用setWindowIcon并传递一个QIcon:
    1. app.setWindowIcon(QIcon(":/room.ico"));(这假设你的文件在资源文件中)

你的问题似乎是在向QIcon传递文件名时没有加上:/前缀。


请确保在函数参数中建议正确的字符串。 - Alexander V
@AlexanderVX 哦,发现得好,谢谢。我已经更新了答案。 - Tas
2
@Tas 我按照文档所述,在 .pro 文件中添加了 RC_ICONS = myappico.ico,然后运行 qmake 命令使图标出现。现在只需使用 app.setWindowIcon(QIcon("room.ico")); 即可正常工作,无需资源文件 :) - The Beast
解决了关于 RC_ICONS += 方法无法工作的问题。http://stackoverflow.com/a/18814639/4149835 - Vladimir Bershov
重要的是使用 QIcon 的图像路径,例如:app.setWindowIcon(QIcon(":/image.png")); 而不是像这样的图像 URL:app.setWindowIcon(QIcon("qrc:/image.png")); 请注意,图像路径中没有 qrc - user3405291
@TheBeast 如果你使用的是Windows系统,RC_ICONS方法就足够了。不需要setWindowIcon函数。请查看https://dev59.com/HHM_5IYBdhLWcg3wQQpd#38660581中的评论。 - atakli

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