有人能够在使用
我尝试过:
这段代码有时能够正常运行,窗口会消失然后出现,但是快捷键只能用一次,第二次就不起作用了... 有什么想法可以实现这个功能吗?
ApplicationWindow
时热重载所有QML文件吗?我找到了一些例子,例如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")));
}
这段代码有时能够正常运行,窗口会消失然后出现,但是快捷键只能用一次,第二次就不起作用了... 有什么想法可以实现这个功能吗?