QMLApplicationViewer多个实例仅首先显示窗口

时间:2013-09-14 11:33:07

标签: c++ qml qt-quick qt4.8

我遇到QTQuick1.1(QT4.8)的问题。我有一个主类,我在其中实例化QMLApplicationViewer并显示窗口。我还调用了一个类,该类应该显示另一个与另一个QML文件,但它不显示。但是会显示调试消息。 这是我的代码:

AnotherWindow::AnotherWindow(QString notImportant)
{
}
void AnotherWindow::create(){
QmlApplicationViewer view;
qDebug()<<"dbug: CWCReate";
view.addImportPath(QLatin1String("modules"));
view.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
view.setMainQmlFile(QString("instanceOfAnotherWindow.qml"));
view.showExpanded();
qDebug()<<"dbug: show";
}

在Main

QmlApplicationViewer view;
view.addImportPath(QLatin1String("modules"));
view.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
view.setMainQmlFile(QLatin1String("/main.qml"));
view.setFixedSize(360,600);
AnotherWindow *c = new AnotherWindow("notImportantHere");
c->create();
view.showExpanded();
return app->exec();
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

这一行很麻烦:

QmlApplicationViewer view;

想一想你在这做什么?

问。在函数内部(希望)实例化一个你想要的对象吗?

问。什么是本地变量的生命周期!?

问。当函数退出时,此变量会发生什么变化!?

哦!,但这在主要工作正常,这也是一个功能?

问。但是那么主要功能的生命周期是什么?


解决方案: 制作此对象,使其在程序的整个生命周期内都可用。指针和动态分配内存怎么样?如何将此指针作为您的类的数据成员?在你的程序结束之前,main不会'退出',是吗?