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

标签 qt qml qtembedded

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

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

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



负载 QML导入文件夹中的文件(将部署 QML 文件)?

或任何其他建议?

我有大约 200 个 QML文件。

最佳答案

文件系统中的QML文件
Files are stored without compression and encryption

  • 构建更快但部署更慢
  • 未经压缩存储,因此占用更多存储空间
  • 易于在目标上即时更改 UI(只需编辑 QML 并重新启动)

  • 资源文件中的QML文件
    Resources are compiled to the binary file making the executable file size bigger
  • 构建速度较慢,但​​部署速度较快。
  • 占用更少的存储空间,因为资源默认被压缩。
  • 由于可执行文件的大小更大,程序在运行时会占用更多内存。
  • 您不能在不重新编译的情况下更改 UI

  • 从链接看下章Managing Resource Files with the Qt Resource System有关相对路径引用的示例。

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

    关于qt - 在嵌入式应用程序中部署 qml 文件时,哪种方法最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34807737/

    相关文章:

    qt - PyQT5 错误 : could not find or load Qt platform plugin xcb

    javascript - 在可扩展的 QML 应用程序中访问 ListView 索引

    qt - 使用 QDataStream 读取文件 : Is it faster with a buffer? 怎么做?

    c++ - 创建一个没有父级的新 Qt 窗口是否也会创建一个新线程?

    qt - qml 中的段落缩进

    c++ - 从 C++ 代码创建单独的 QML 窗口

    c++ - 以 C++ 对象的形式访问 QML 插件代码

    c++ - 什么是qt framebuffer工作机制?

    qt - 如何(正确)在 Qt-Embedded 中输出多语言文本?

    带有 QtConcurrent::run 的 Qt QTcpSocket 需要单独线程中的事件循环