Seite 1 von 1

QMdiSubWindow aus QMdiArea lösen?!

Verfasst: 25. August 2010 08:28
von chrislo1976
Hallo zusammen!

Ich habe eine Anwendung mit einer QMdiArea und alle Hauptfenster sind Sub-Windows dieser MdiArea.
Normalerweise können diese Fenster ja nur innerhalb der MdiArea verschoben werden, nicht aber aus dem Fenster raus (z.B. auf einen 2ten Monitor)

Gibts da eine Möglichkeit SubWindows von der MdiArea zu "lösen", damit man es ausserhalb der MdiArea verschieben kann?
Optimalerweise wäre es gut wenn man es auch wieder "eingliedern" könnte.

Danke schon mal für Infos!

Gruß,
Christian

Verfasst: 25. August 2010 09:08
von Nvidia
ja, in dem du es clonst.
Allerdings kannst du kein QMdiSubwindow(sw) mit rausnehmen.
du kannst den inhalt des sw als Child von z.b. einem neuem QWidget nehmen udn das sw zerstoeren.
Beim Einfuegen halt umgekehrt.
nvidia

Verfasst: 25. August 2010 14:32
von chrislo1976
Hallo!

Ich habe es jetzt mal versucht OHNE zu Klonen:

Das Herauslösen:

Code: Alles auswählen

QMdiSubWindow* parent = qobject_cast<QMdiSubWindow*>(parentWidget());
if (parent != NULL)
{
   parent->setWidget(NULL);
   setParent(mdi->parentWidget() , Qt::Tool);
   mdi->removeSubWindow(parent);

   showWindow();
}
...und das wieder einfügen:

Code: Alles auswählen

MdiAreaEx* mdi = MdiAreaEx::getMDIAreaEx();
if (mdi)
{
   mdi->addSubWindow(this);
   showWindow();
}
Auf den ersten Blick scheint es zu funktionieren, ich muss das aber noch genau durchtesten!

Danke für Tipp!

Gruß,
Christian