Qt / C ++:程序运行时不显示图标

时间:2010-11-06 18:11:46

标签: qt icons toolbar

我在Qt Designer的MainWindow中使用QAction添加了QToolBar(使用Qt Creator IDE),并为Action提供了一个图标(由“选择文件”完成并选择我的。 png位于与我的项目和源代码相同的目录中)。该图标在Qt Designer的工具栏中显示正常,但在项目运行时不显示。在Windows上选择标题栏图标时遇到了类似的麻烦。我以前从未在Qt中使用过图形,我需要做些什么特别的事情吗?

截图:

7 个答案:

答案 0 :(得分:13)

我发现自己正在做所有正确的事情,添加一个qrc文件并将我的图标放在那里。当我运行程序没有交易。 结果我忘记了 qmake

  • 右键单击项目名称,然后选择“运行qmake”。或者转到Build> Run qmake。

每次更改.pro文件中的内容时,都需要再次运行qmake。创建资源文件会隐式地向.pro文件添加argunments,因此您需要这样做。

希望它可以帮助其他人。

答案 1 :(得分:12)

您是否制作了QRC文件(即Qt相当于资源文件?) 如果没有,这将解释你所看到的。图标将显示在创建者中,但不会显示在最终编译的可执行文件中。看看这个:

http://doc.qt.io/qt-5/resources.html

答案 2 :(得分:3)

同样在构建阴影的情况下,不要忘记在应用程序可执行文件中使用 windeployqt.exe 。之后,几个文件夹将添加到您的构建目录中。特别是两个重要的文件夹: iconengines imageformats ,其中包含加载和绘制图标所需的几个dll。

答案 3 :(得分:1)

还要确保不要忘记在代码中包含 qrc 文件(例如在 main(...) 中)和 Q_INIT_RESOURCE(MyIconResource); 这也可能导致最终 exe 中缺少图标。

答案 4 :(得分:0)

您是否尝试过打开Project文件?例如,我的项目文件名为menu.pro,它包含以下内容:

TEMPLATE = app
QT = gui core
CONFIG += qt debug warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/mainwindow.ui
HEADERS = src/mainwindowimpl.h
SOURCES = src/mainwindowimpl.cpp src/main.cpp
RESOURCES = Images.qrc

最后一行(RESOURCES = Images.qrc)是你需要放在项目文件中的东西:当然,使用你用于资源文件的名称,在我的例子中,它是Images.qrc

答案 5 :(得分:0)

我也遇到过这样的问题。在我的情况下,我关闭了qt creator并删除了build文件夹(类似 build-projectname .. )。然后重新启动qt creator。然后神奇地我的图标出现在运行的应用程序上。

当qt表现不佳时,我经常使用这个技巧。

答案 6 :(得分:0)

  1. 添加图标时使用"选择资源"选项而不是"选择 文件"选项。
  2. 右键单击项目的名称,然后单击"运行 qmake的"