在Qt Creator中设置OSX的应用程序图标
Setting the application icon for OSX in Qt Creator
遵循此处OSX的指示:http://doc.qt.io/qt-5/appicon.html声明我所需要做的就是将ICON = myapp.icns
添加到我的项目文件中。我使用了我从Qt本身窃取的一个ICNS文件(换句话说,它应该可以工作,这不是转换问题),在运行qmake后构建时,我得到了错误
make: *** No rule to make target '1.22/MyProject.icns', needed by 'myapp.app/Contents/Resources/MyProject.icns'
我经常使用make,但对Qt没有什么经验,所以我不知道它在这里想告诉我什么(我甚至不知道这些文件路径来自哪里)。.icns文件已添加到resources.qrc中,并且位于项目的基本目录中。
非常感谢您的帮助。谢谢
编辑:好的,文件路径中的空间阻止了生成。它现在编译并运行,但仍然没有停靠图标。
以下是grep命令的输出,应Simon Warta的要求:
_Qt_5_1_1_clang_64bit-Debug/Makefile | grep -C 3 icns
443
444 :
445 @$(DEL_FILE)
446 @sed -e "s,@SHORT_VERSION@,1.22,g" -e "s,@TYPEINFO@,????,g" -e "s,@ICON@,myapp.icns,g" -e "s,@EXECUTABLE@,myapp,g" -e "s,@TYPEINFO@,????,g" ../myapp1.22/myapp.plist >
447 myapp.app/Contents/Resources/myapp.icns: ../myapp1.22/myapp.icns
448 @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/
--
448 @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/
449 @$(DEL_FILE) myapp.app/Contents/Resources/myapp.icns
450 @$(COPY_FILE) ../myapp1.22/myapp.icns myapp.app/Contents/Resources/myapp.icns
451 dist:
452 @test -d .tmp/myapp1.22 || mkdir -p .tmp/myapp1.22
[[All my source files]]
477 compiler_rcc_clean:
478 -$(DEL_FILE) qrc_myapp.cpp
479 qrc_myapp.cpp: ../myapp1.22/myapp.qrc
480 ../myapp1.22/myapp.icns
481 ../myapp1.22/images/splashmyapp2.png
482 ../myapp1.22/images/splashmyapp1.png
483 ../myapp1.22/images/About.png
--
--
481 ../myapp1.22/images/splashmyapp2.png
482 ../myapp1.22/images/splashmyapp1.png
483 ../myapp1.22/images/About.png
486 /Users/EngMac/Qt5.1.1/5.1.1/clang_64/bin/rcc -name myapp ../myapp1.22/myapp.qrc -o qrc_myapp.cpp
来自myapp.pro:
ICON = myapp.icns
QMAKE_INFO_PLIST = myapp.plist
QMAKE_INFO_PLIST
必须被称为Info.plist
。它可能被放置在您选择的自定义子目录中,但文件名是固定的。这是因为OS X系统将查找具有该确切文件名的文件。
进一步的调试提示(按重要性排序):
- 发布当前错误消息
- 更新Makefile部件
cat -n [...]_Qt_5_1_1_clang_64bit-Debug/Makefile | grep -C 4 icns
- 在源代码中搜索
QMAKE_INFO_PLIST
的其他位置:调用存储库根目录中的git grep QMAKE_INFO_PLIST
- 发布
Info.plist
的内容 - 张贴
.pro
文件的内容
我不得不添加到Project.pro:
ICON = Project.icns
QMAKE_INFO_PLIST = Info.plist
# Qt doesn't copy over the .icns file ?!
RESOURCE_FILES.files = $$ICON
RESOURCE_FILES.path = Contents/Resources
QMAKE_BUNDLE_DATA += RESOURCE_FILES
以及在Info.plist中:
<key>CFBundleIconFile</key>
<string>ContentCanvas</string>
Qt似乎没有将项目设置为将.icns文件复制到捆绑包中(至少在Qt 5.9中是这样),所以将其保存在.plist文件中是没有用的。.pro文件中的最后三行手动复制。
QApplication应用程序(argc,argv);
app.setWindowIcon(QIcon(":/icons/test_icon.icns");//您的路径图标
相关文章:
- 如何为 C++ Visual Studio 2019 指定应用程序图标?
- 为什么从文件获取图标时应用程序有时会崩溃?
- 为没有qmake/VS的Qt Windows应用程序设置.exe图标
- 如何向控制台应用程序添加图标
- 获取应用程序图标时出现问题
- 隐藏自定义应用程序窗口,但应在任务栏上显示应用程序图标(不是作为托盘图标)
- 在任务管理器中修改应用程序图标,而不是在系统托盘中
- 如何在OS X上的Qt应用程序中设置应用程序图标,足以进行分发
- 在Qt Creator中设置OSX的应用程序图标
- 使用CMake设置应用程序图标
- 如何在任务管理器中更改应用程序图标
- 在 Linux 上的 Qt 中获取应用程序图标 URL
- 如何在Qt中设置应用程序图标
- 应用程序图标Visual Studio 2010 c++
- 没有找到为windows应用程序设置应用程序图标的问题.rc文件
- 如何以编程方式将应用程序图标固定在windows 8的地铁启动屏幕上
- Qt4应用程序图标没有出现在Windows任务栏上
- Qt 5.0.1 中未显示应用程序图标
- 在用户关闭bb10(z10)应用程序时,访问主屏幕上的应用程序图标需要很长时间
- Qt5.6设置应用程序图标(Linux)