我可以将Qt GUI进程放在Mac包下的Resources文件夹中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以将Qt GUI进程放在Mac包下的Resources文件夹中相关的知识,希望对你有一定的参考价值。

有2个过程。一个是位于Mac软件包下的MacOS文件夹中的GUI进程,而另一个是位于软件包下的Resources文件夹中的托盘进程。托盘进程似乎无法找到cocoa插件/库。因为当我手动运行它时,会出现如下错误

此应用程序无法启动,因为它无法在“”中找到或加载Qt平台插件“cocoa”。

捆绑结构看起来像这样

-Contents
 |_MacOS
 | |_gui
 |
 |_Resources
 | |_tray
 | |_qt.conf
 |
 |_Plugins
   |_platforms
     |_libqcocoa.dylib

qt.conf包含

[Paths]
Plugins = PlugIns
Imports = Resources/qml
Qml2Imports = Resources/qml

将托盘进程放入Mac包中的资源文件夹是否正确?

答案

根据Bundle Programming GuideResources文件夹用于图像,声音等资源(见表2-5):

包含所有应用程序的资源文件。进一步组织此目录的此内容以区分本地化和非本地化资源。有关此目录结构的详细信息,请参阅“资源目录”。

和:

您可以在Resources目录中放置所有图像,声音,nib文件,字符串资源,图标文件,数据文件和配置文件等。

但是MacOS文件夹也可能包含帮助程序可执行文件:

包含应用程序的独立可执行代码。通常,此目录仅包含一个二进制文件,其中包含应用程序的主入口点和静态链接的代码。但是,您也可以在此目录中放置其他独立的可执行文件(例如命令行工具)。

因此,我认为MacOS文件夹是您的tray二进制文件的最佳位置。我不知道这是否解决了缺少平台插件的问题。

以上是关于我可以将Qt GUI进程放在Mac包下的Resources文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

Qt 框架适用于这个 Windows 和 Mac GUI?

是否可以从 Qt Gui 应用程序创建 .exe 文件 [重复]

Qt中的linux系统守护进程

Qt GUI 应用程序在与 gui 交互时停止实时进程

使用 Qt 运行日志流送时 Python 崩溃

使用 Qt 运行日志流送时 Python 崩溃