保存后重新加载
Posted
技术标签:
【中文标题】保存后重新加载【英文标题】:Livereload after save 【发布时间】:2015-07-22 18:38:10 【问题描述】:我刚刚开始使用 QtCreator 在 QML 中进行编程。我更喜欢使用代码编辑器而不是设计编辑器来编写 QML 文件。但每次保存后,我都必须运行应用程序才能看到更改。即使在构建时启用自动保存也不是解决方案,因为每个构建都会出现一个新窗口,但旧窗口仍在桌面上。
所以我在 bash 中编写了这个两行脚本来在保存 QML 后重新加载 UI:
while sleep 0.1; do qmlscene main.qml; done &
while true; do while inotifywait -e close_write *.qml; do killall qmlscene; done; done &
当一个 QML 被保存时,killall qmlscene
被调用,然后一个新的qmlscene
被启动。
QtCreator 是否提供这样的 livereload 功能?我不需要重新编译,重新加载qml文件就可以了。
【问题讨论】:
【参考方案1】:你有clearComponentCache
,但你需要在调用它后重新加载qml:
view->engine()->clearComponentCache();
view->setSource("qml/main.qml");
view->show();
【讨论】:
我正在寻找 IDE 功能,我想避免更改代码。类似qmlscene --watch main.qml
不,你不会找到任何 IDE 这样做,你总是需要关闭然后打开应用程序或清除并重新加载缓存。【参考方案2】:
V-Play 引擎为 Windows、Linux、MacOS、ios 和 android 上的应用和游戏提供 QML 实时重新加载。
您可以在我们的博客上找到更多信息:
https://v-play.net/updates/release-2-14-0-live-code-reloading-for-desktop-ios-android
我们最近还添加了从浏览器实时重新加载,以直接从文档和博客中测试代码示例:
https://v-play.net/cross-platform-development/web-editor-test-online-code-examples-on-android-and-ios-with-live-code-reloading
【讨论】:
以上是关于保存后重新加载的主要内容,如果未能解决你的问题,请参考以下文章
保存游戏(使用localStorage)并在重新加载页面后继续游戏的能力