main.qml
次のようにファイル システムからファイルをロードする QML ベースのアプリがあります。
myEngine->load("main.qml");
これで問題なく動作しますが、main.qml が新しいバージョンに置き換えられた場合に備えて、エンジンを「リロード」したいと思います。
load()
これまで試したのは、エンジンが他の Qt クラスのように自動的にリセットされると仮定して、もう一度呼び出すことでした。
残念ながら、そうではありません。メソッドを再度呼び出すと、更新された qml ファイルの内容を含む別のウィンドウが表示されますが、元のウィンドウは開いたままになり、古い qml ファイルが表示され続けます。
これを修正するために、 を呼び出しload(QUrl())
、続いclearComponentCache()
て新しいファイルの最終ロード呼び出しを試みました。これにより、同じ効果が得られます。
アプリケーションの実行中にQMLエンジンを「適切に」リロードする方法はありますか?