Seite 1 von 1

subwindow in mdiArea geht nur im Constructor

Verfasst: 3. Oktober 2010 11:55
von drewle
Hallo,
ich will in einem MDI-Bereich ein Subwindow einfügen. Laut Hilfe sollte das so gehen, dass ich ein Widget anlege und mit addSubWindow ein Subwindow erzeuge, das dann angezeigt wird.
Das funktioniert auch prima, wenn ich im Constructor von meinem Mainwindow folgendes ausführe:

Code: Alles auswählen

widgetText *widgetDummy=new widgetText(ui->mdiArea);
ui->mdiArea->addSubWindow(widgetDummy,Qt::SubWindow);
Wenn ich das selbe aber in irgend einer anderen Funktion meines Mainwindows einfüge, wird kein Subwindow angezeigt.

Kann mir jemand weiter helfen?
Ich habe das "widgetText" mit dem Creator 1.2.1 (Qt 5.4.2) erzeugt.

Schon mal Danke,

Drewle.

Ps: Es funktioniert bei mir genauso wenig, wenn ich zuvor ein Subwindow erzeuge, das Widget einhänge und das ganze dann an add SubWindow übergebe. :(

Verfasst: 3. Oktober 2010 12:32
von Christian81
Bitte minmal kompilierbares Beispiel... es funktioniert prinzipiell überall - also liegt es an Deinem Code. Und aus dem Stückchen wird man nicht schlau.

Verfasst: 3. Oktober 2010 12:50
von drewle
Hallo Christian,
Danke für Deine Hilfe!
im Anhang findest Du mein Projekt. Es ist im Moment noch etwas unsortiert, Ich hoffe, Du kommst damit zurecht.

Ich will das Subwindow in der Funktion "on_treeProject_doubleClicked" (mainwindow.cpp) einhängen. Es funktioniert aber in keiner Funktion außer dem Konstruktor.

Drewle

Verfasst: 3. Oktober 2010 13:13
von upsala
Minimal und kompilierbar?

Für was einmal das WindowFlag und einmal nicht? Normalerweise gibt man dort nur Qt::WA_DeleteOnClose an oder nichts.

Häng mal ein show() dahinter.

Verfasst: 3. Oktober 2010 13:58
von drewle
Hallo,
das show() hats gebracht!
Anscheinend wird das show beim Konstruktor automatisch aufgerufen.

Mit den Flags habe ich einfach mal rum gespielt und verschieden Varianten getestet. Ursprünglich war der Code in beiden Fällen gleich.

Vielen Dank für Deine Hilfe.

Drewle