私のプロジェクトWindow
では、画面の 1 つ (1 つの送信者、1 つの受信者) にそれぞれ 2 つの QML を表示する必要があります。両方とも、.qml
内部にいくつかの Cpp モデルを含める必要があるため、QQmlApplicationEngine
Cpp モデルを登録するために使用しています。
を使用すると、1 つのプロジェクトに対してQWidget::createWindowContainer()
複数の を表示できることがわかりました。Window
これは、最初の 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...
receive.qml
同様の方法で2 つ目のアプリケーション エンジンを作成することにしました。receive.qml
があっても が開かないことにすぐに気付きましたcontainer2->show()
。現在、空のページが表示されています。
私の質問は次のとおりです。
- 私のアプローチは正しいですか、それともより良い解決策がありますか?
- ウィンドウを閉じるイベントをキャッチするには、どのシグナルに注意する必要がありますか? ウィンドウの1つが閉じられているときに信号を検出できないようです。どちらかが検出されたときに両方を閉じたかったので。