Qt 在嵌入式应用程序中部署qml文件时,哪种方法是最好的?

Qt 在嵌入式应用程序中部署qml文件时,哪种方法是最好的?,qt,qml,qtembedded,Qt,Qml,Qtembedded,我正在为一个嵌入式项目工作,在QML中开发UI,在C++/Qt中使用DB/其他系统调用开发后端逻辑 部署qml文件的最佳方法是什么? 它是否添加到.qrc(作为资源)并编译为可执行应用程序 或 从导入文件夹加载QML文件(QML文件将被部署) 或者其他建议 我有大约200个QML文件。QML文件在文件系统中 文件存储时不进行压缩和加密 构建速度更快但部署速度较慢 无压缩存储,因此占用更多存储空间 易于在目标上动态更改UI(只需编辑QML并重新启动) 资源文件中的QML文件 资源被编译成二进制

我正在为一个嵌入式项目工作,在
QML
中开发UI,在
C++
/
Qt
中使用
DB
/其他系统调用开发后端逻辑

部署qml文件的最佳方法是什么?

它是否添加到
.qrc
(作为资源)并编译为可执行应用程序

从导入文件夹加载
QML
文件(
QML
文件将被部署)

或者其他建议

我有大约200个
QML
文件。

QML文件在文件系统中
文件存储时不进行压缩和加密

  • 构建速度更快但部署速度较慢
  • 无压缩存储,因此占用更多存储空间
  • 易于在目标上动态更改UI(只需编辑QML并重新启动)
资源文件中的QML文件
资源被编译成二进制文件,使可执行文件的大小变大

  • 构建速度较慢,但部署速度较快
  • 由于默认情况下压缩资源,因此占用的存储空间更少
  • 由于可执行文件的大小更大,程序运行时占用更多内存
  • 在不重新编译的情况下,无法对UI进行更改
有关相对路径引用的示例,请参见以下章节的链接

我没有什么强烈的意见,但这里有我的一些想法:
如果内存使用是一个问题,那么您可能不需要嵌入资源,并确保尽可能多地使用组件的动态加载。在开发阶段,不使用嵌入式资源更容易。如果是客户项目,我会将客户交付作为嵌入的qml文件。这可以防止客户自行调整UI代码。

对于200个qml文件,我认为最好的方法是使用资源文件,并在单个应用程序中编译。这一点很好。你能编辑你的答案来详细说明“参考问题”吗?这有点模糊。感谢更新:现在我更喜欢“资源文件中的QML文件”,如果它添加到可执行文件中,那么启动时间需要时间,所以我计划将资源移动到单独的库中。有很多优点,但我对“需要更多内存,因为可执行文件越大”。例如,在Linux下,我假设qrc放在一个定制的只读.elf部分中。这些页面都是“干净”的,所以如果需要内存,内核可以直接删除它们。@Mitch我没有任何确凿的证据,只是对Qt4的相对路径有一些不好的体验。因此,我将引用问题注释替换为Qt 5文档和示例的链接。@Frank我们讨论的是编译成二进制或单独二进制资源文件的.qrc文件,而不是.qrc文件本身。Qt资源编译器RCC将QRC资源文件中的二进制数据转换成QRC[sOnMAME] CPP文件中的无符号字符数组,然后由C++编译器将其编译成目标文件。