QML 缓存(QML Caching)

最近一直在学习QML,在Qt Creator中新建Qt Quick工程后,尝试不断地修改qml文件来进行试验,qml文件需要反反复复的修改。

Qt Widget工程,如果修改了cpp代码后,直接构建或者直接运行,编译器都会重新编译最新的代码进而运行展示,但是qml工程却不是这样,每次修改qml文件后,都需要“清除-构建-运行”。

这是由于qml和前端javascript类似,具有缓存机制,加载的还是上次缓存中的内容。

官方文档“https://doc.qt.io/qt-5/qtquick-deployment.html”给出了关于QML缓存的解释:

翻译如下:

QML缓存

QML运行时通过解析QML文档并生成字节代码来加载它们。大多数情况下,文档自上次加载后没有更改。
为了加快此加载过程,QML运行时为每个QML文档维护一个缓存文件。此缓存文件包含已编译的字节代码和QML文档结构的二进制表示。
此外,当多个应用程序使用相同的QML文档时,代码所需的内存在应用程序进程之间共享。缓存文件通过符合POSIX的操作系统上的mmap()系统调用或Windows上的CreateFileMapping()加载,从而节省大量内存。
每次加载更改的QML文档时,都会自动重新创建缓存。
缓存文件位于QStandardPaths :: CacheLocation的子目录中,名称为“qmlcache”。
QML文档的文件扩展名为.qmlc,导入的JavaScript模块的文件扩展名为.jsc。

通过拿Everything在系统上搜索,果然如此:

我还没有在Qt Creator中找到一键清除缓存后重新编译的方法,找到后分享,也欢迎知道的大神给指点一下!

转载于:https://www.cnblogs.com/MakeView660/p/11309545.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值