Mehrere Fenster in einem einzigen Projekt

Habe ich eine Anforderung für mein Projekt für die Anzeige von zwei QML Windows 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 Windows 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:

  1. Ist mein Ansatz richtig oder gibt es eine bessere Lösung dafür?
  2. 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.
InformationsquelleAutor angelhalo | 2015-07-08
Schreibe einen Kommentar