Кому-нибудь удавалось перезагрузить все файлы QML при использовании ApplicationWindow
? Я нашел несколько примеров, например https://qml.guide/live-reloading-hot-reloading-qml/ и https://www.slideshare.net/ICSinc/how-best-to-realize-a-runtime-reload-of-qml, но в основном они используют Loader
, а поскольку ApplicationWindow
должен быть корневым элементом , это не работает (окно не появляется), чтобы просто перезагрузить все материалы QML.
Я пытался:
ApplicationWindow {
id: window
visibility: "FullScreen"
Shortcut {
sequence: "F5"
context: Qt.ApplicationShortcut
onActivated: {
window.close();
app.loadQml();
}
}
...
}
где app
- свойство контекста, которое я установил на стороне C ++, а функция выполняет:
void App::loadQml()
{
qml_engine_.clearComponentCache();
// Use "qrc:/Main.qml" for Qt Resource System.
// Use "Main.qml" for file system.
qml_engine_.load(QUrl(QStringLiteral("Main.qml")));
}
Этот код работает один раз, окно исчезает и снова исчезает, но ярлык работает только один раз, но не второй раз ...
Есть идеи, как это реализовать?
Shortcut
- person bardao   schedule 13.03.2019