首页| 论坛| 消息

标题:QML中如何加载登陆界面
作者:lovexin109
日期:2014-07-13 10:32
内容:

建了一个QT Quick Application,在里面建了一个登陆界面,里面建了一个loadin.qml,
如下图:

请问我如何做到在main.qml加载前加载loadin.qml呢??
在main.cpp里修改engine.load(QUrl(QStringLiteral("qrc:///loadin.qml")));运行什么也不显示,我觉得我的思路可能有问题
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
//engine.load(QUrl(QStringLiteral("qrc:///loadin.qml")));
return app.exec();
}
想问一下大家是怎么实现的?


#1 [toby520 07-13 16:26]
要看下qml里面写的什么 如果主qml的主窗口是个rectangle肯定运行不起来,因为你的main函数里面只是一个qml引擎,没有真正的view来加载qml,所以你的qml里面必须要是WIndow活着AppplicationWindow作为主窗口
#2 回 toby520 的帖子 [lovexin109 07-13 20:04]
toby520:要看下qml里面写的什么 如果主qml的主窗口是个rectangle肯定运行不起来,因为你的main函数里面只是一个qml引擎,没有真正的view来加载qml,所以你的qml里面必须要是WIndow活着AppplicationWindow作为主窗口 (2014-07-13 16:26) 
谢谢版主,试了一下仍无法显示,重新建了一个把里拷出来就可以了,我原来的主窗口是rectangle,确是需要window或applicationwindow。版主威武
顺便问一下版主像这种登陆界面切换主界面,是用engine.load 加载不同的QML文件就可以了吗?
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
//engine.load(QUrl(QStringLiteral("qrc:///loadin.qml")))
#3 [toby520 07-13 21:48]
一般都是在一个window窗口里面做页面的切换,或者动态加载qml页面,不建议在c++里面做页面切换,关于页面切换 可以参考下stackview这个qml控件
#4 回 toby520 的帖子 [lovexin109 07-14 08:58]
toby520:一般都是在一个window窗口里面做页面的切换,或者动态加载qml页面,不建议在c++里面做页面切换,关于页面切换 可以参考下stackview这个qml控件 (2014-07-13 21:48) 
谢谢版主,试一下

回复 发表
主题 版块