我在Qt Designer中的MainWindow中向我的QToolBar添加了一个QAction,并为该操作添加了一个图标(使用“选择文件”并选择与我的项目和源代码位于同一目录中的.png)。图标在Qt Designer中的工具栏中显示得很好,但在项目运行时不显示。在Windows上选择标题栏图标时我也遇到了类似的问题。我以前从未在Qt中使用过图形,我需要做些特别的事情吗?
截图:
我发现自己已经做了所有正确的事情,添加了一个qrc文件并将我的图标放在那里。但是当我运行程序时,没有任何反应。
结果是我忘记了运行qmake:
每次更改.pro文件中的内容后,都需要重新运行qmake。隐式创建资源文件会向.pro文件添加参数,因此您需要这样做。
希望它能帮助其他人。
您是否制作了QRC文件(即Qt的资源文件)?如果没有,那就可以解释您看到的情况。图标将显示在创建者中,但不会出现在最终编译的可执行文件中。请查看此链接:
对于阴影构建,同样不要忘记在应用程序可执行文件上使用windeployqt.exe。之后,将向您的构建目录添加几个文件夹。特别是两个重要的文件夹:iconengines和imageformats,其中包含加载和绘制图标所需的多个dll。
你尝试打开项目文件了吗?例如,我的项目文件名为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
。
还要确保在代码中包含qrc文件(例如在main(...)中)Q_INIT_RESOURCE(MyIconResource);
,以免在最终的exe中缺少图标。
我也遇到过这样的问题。在我的情况下,我关闭了Qt Creator并删除了构建文件夹(类似于build-projectname..)。然后重新启动Qt Creator。然后神奇地,我的图标出现在运行的应用程序上。
当Qt表现不佳时,我经常使用这个技巧。