美文网首页Qt 编程那些事
QML 高效开发之加载方式

QML 高效开发之加载方式

作者: devstone | 来源:发表于2024-02-20 22:03 被阅读0次

背景

日常使用 QML开发软件过程中,默认使用 qrc 存在开发效率慢问题,比如每次修改界面内容后需要先构建才能看到实际效果,尤其在频繁调试界面样式时显得更繁琐

原理

Qt 中的资源分为两类,编译型外部二进制资源

编译型资源每次更改后都需要构建才能生效。QML 作为一种特殊的资源文件,每次改动后qrc无法感知是否修改,构建后才会更新对应的数据内容(如图所示)

rcc

其它资源文件比如图片等,原理类似

比如你在程序中使用了某张图片,需求变化需要更新某张图片,你直接拷贝替换后直接运行程序,发现未生效,找了半天问题,最后构建后发现神奇的好了

解决方案

知道了问题原因,那就可以对症下药。简而言之,跳过 编译型 qrc方式,直接从本地路经加载 QML 资源,比如

  • 开发阶段:
qmlRes = file:///D:/code/src/KQML/App.qm
QQmlApplicationEngine engine;
engine.load(qmlRes);
  • 正式发布阶段
qmlRes = "C:/kchat/cfg/KSkinRes.rcc"
QResource::registerResource(qmlRes);
engine.load(qmlRes);

上面的 KSkinRes.rcc 文件是通过 Qtrcc 工具编译生成的二进制文件

完整示例解决方案

详细实现可以阅读文章

相关文章

  • QML中文件的加载

    在这里小小总结一下QML文件中如何加载QML文件与JavaScript文件。 1、QML文件中加载JavaScri...

  • QML文件加载的几种方式

    阅读本文大概需要4分钟 整理下QML过程,看到好多方式加载QML文件,这里参考网上总结整理下. QQmlAppli...

  • QmlLoader

    qml中可以使用Loader来加载并显示qml文件 调用 就可以加载对应的qml文件并显示了 需要完整代码请访问Q...

  • QML Loader使用

    能在qml组件需要的时候再创建,即延迟创建QML的时间,类似ios懒加载 main.qml page1.qml p...

  • QML Loader 使用注意事项

    QML 的 Loader 元素经常被用来动态加载 QML 组件。可以使用 source 属性或者 sourceCo...

  • Qml调用插件

    创建一个带Qml窗体的动态库, 接口文件如下: 通过调用接口来加载和显示qml文件 调用方加载和调用插件中的接口函...

  • Bitmap的加载与缓存策略

    Bitmap的加载和Cache Bitmap的高效加载 使用BitmapFactory加载一张图片的方式 deco...

  • iOS开发集锦之 2017.04.18

    1. iOS开发之pdf文档的加载与浏览的4种方式 作者: 绿豆粥与茶叶蛋描述: UIWebView加载本地或者网...

  • QML用户界面基础(一)

    QML 允许开发人员以声明的方式构建用户界面。Qt Quick[https://doc.qt.io/qt-5/qt...

  • QtQuick/Qml自定义控件(9)-Quick组件管理

    Qml开发中经常需要使用大量的动态创建的对象, 并且需要进行管理. qml可以通过Qt.createCompone...

网友评论

    本文标题:QML 高效开发之加载方式

    本文链接:https://www.haomeiwen.com/subject/xhqiadtx.html