我有一个基于 QML 的应用程序,它main.qml
从文件系统加载文件,如下所示:
myEngine->load("main.qml");
这工作正常,但我想“重新加载”引擎,以防 main.qml 被更新版本替换。
到目前为止,我尝试load()
再次调用,假设引擎会像在其他 Qt 类中一样自动重置自己。
不幸的是,这种情况并非如此。如果我再次调用该方法,将出现另一个窗口,其中包含更新的 qml 文件的内容,而原始窗口保持打开状态并继续显示旧的 qml 文件。
为了解决这个问题,我尝试调用load(QUrl())
,然后clearComponentCache()
对新文件进行最终加载调用。这导致相同的效果。
任何想法如何在应用程序运行时“正确”重新加载 QML 引擎?