小编ang*_*alo的帖子

单个项目中的多个窗口

我要求我的项目Window在一个屏幕上显示两个QML (一个发送者,一个接收者).两者都.qml要求我在里面包含一些Cpp模型,因此我QQmlApplicationEngine用来注册Cpp模型.

我发现使用QWidget::createWindowContainer()我能够Window为一个项目显示多个s.这适用于第一个QML文件.代码片段如下所示:

QQmlApplicationEngine* engine = new QQmlApplicationEngine(Qurl("main.qml"));
QmlContext* context = engine.getContextProperty();

//do some Cpp models registering...

QQuickview *view = new QQuickview(engine,0);
QWidget* container = widget::createWindowContainer(view);  
//I realized I dont need to do container->show(); for the main.qml to appear..

//use desktop widget to move the 2nd container to the 2nd screen...
Run Code Online (Sandbox Code Playgroud)

我决定receive.qml用类似的方法为我创建第二个应用程序引擎.我很快意识到,receive.qml即使有了,也永远不会打开container2->show().现在,它显示一个空页面.

我的问题是:

  1. 我的方法是正确的还是有更好的解决方案?
  2. 我需要注意什么信号来捕捉窗口关闭事件?当其中一个窗口关闭时,我似乎无法检测到信号.因为我想在检测到两者时关闭它们.

qt qwidget qml qtquick2 qquickview

6
推荐指数
1
解决办法
7351
查看次数

标签 统计

qml ×1

qquickview ×1

qt ×1

qtquick2 ×1

qwidget ×1