c++11 - Qml : 切换 qml 视图
问题描述
我是 QML 的初学者。
我有一个 Loading.qml 和一个 main.qml
我想在应用程序启动时显示 loading.qml,当我的所有数据都准备好后,我想隐藏 loading.qml 并显示 main.qml
我想从 C++ 代码中做到这一点
我怎样才能做到这一点 ?
谢谢
[更新]
我试过这个
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
qmlRegisterType<MyWindow>("project.mywindow", 1, 0, "MyWindow");
engine.load(QUrl("qrc:/LoadingPage.qml"));
if(engine.rootObjects().isEmpty()) return -1;
// simulate preloading data
std::this_thread::sleep_for(std::chrono::seconds(5));
engine. ? -> switch to another view ?
/*engine.load(QUrl("qrc:/main.qml"));
if(engine.rootObjects().isEmpty()) return -1;*/
return app.exec();
}
我的 QML LoadingPage.qml
import QtQuick 2.0
import QtQuick.Window 2.0
import QtQuick.Controls 2.0
ApplicationWindow {
id: loading
visible: true
width: Screen.desktopAvailableWidth
height: Screen.desktopAvailableHeight
title: qsTr("Board")
Loader {
id: pageLoader
}
Component.onCompleted: {
pageLoader.source = "qrc:/main.qml"
loading.visible = false
}
Image {
id: logo
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
width: 100
height: 100
source: "qrc:/img/download.jpeg"
}
Button {
id: btn
width: 250
height: 250
x: 250
y: 0
onClicked: {
pageLoader.source = "qrc:/main.qml"
loading.visible = false
}
}
}
我想当我的 main.qml 准备好(当我的类 MyWindow 的 c++ 构造时)没问题时,我想切换到它们。
解决方案
推荐阅读
- html - 作为网站开发者,如何让 Android 和 iOS 上的谷歌新闻显示大图?
- sql-server - SQL Server 2017 和在线索引重建在 Standard 到 Enterprise 升级后无法正常工作
- docker - dotnet core odbc vertica 与 Docker
- c# - 如何禁用特定 dll 的自动绑定重定向
- regex - 制表符/正则表达式过滤器不区分大小写?
- kubernetes - 定义需要以下字段之一或没有字段的 Kubernetes 自定义资源
- openwrt - 每次启动时执行脚本 - OpenWRT
- flutter - 如何从颤振应用程序打开外部应用程序
- python - 如何修复日期和时间字段 Pymongo
- elasticsearch - 使用 ElasticSearch RestHighLevelClient 仅获取选择性字段