Mehrere Fenster in einem einzigen Projekt
Habe ich eine Anforderung für mein Projekt für die Anzeige von zwei QML Window
s jeweils auf einer auf dem Bildschirm (ein sender, ein Empfänger). Sowohl der .qml
verlangt von mir einige Cpp-Modelle, die innerhalb daher, ich bin mit QQmlApplicationEngine
registrieren die Cpp-Modellen.
Fand ich heraus, dass die Verwendung QWidget::createWindowContainer()
ich bin in der Lage, mehrere anzeigen Window
s für ein einzelnes Projekt. Das funktioniert völlig in Ordnung für die erste QML-Datei. Der code-Schnipsel sieht wie folgt aus:
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...
Entschloss ich mich für eine 2. Anwendung Motor für meinen receive.qml
mit einer ähnlichen Methode. Ich merkte bald, dass der receive.qml
würde niemals öffnen, auch mit container2->show()
. Nun, es zeigt eine leere Seite.
Meine Fragen sind:
- Ist mein Ansatz richtig oder gibt es eine bessere Lösung dafür?
- Welches signal muss ich achten, fangen die Fenster schließen
Veranstaltung? Ich kann nicht scheinen, um in der Lage sein, um das signal zu erkennen, wenn eine der
Fenster wird geschlossen. ich wollte in der Nähe der beiden, wenn man hat
erkannt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass getan werden kann, zu erleichtern, zum Beispiel:
main.qml
Und so können Sie den Zugriff auf diese windows von C++ - code:
main.cpp
Fangen ein closing-Ereignis aus, die Sie verwenden sollten QQuickWindow::schließen Veranstaltung