Diverse Fragen zum DockWidget
Verfasst: 31. Oktober 2006 17:09
Ich bin gerade dabei mich in Qt 4.2 einzuarbeiten. Ich habe bereits das kostenlose Buch zu Qt 3, doch leider ist einiges was dort zum DockWindow beschrieben ist nicht mehr gültig.
1. Kann ich ein innerhalb eines LayoutManagers befindeliches DockWidget (also nicht wie vorgesehen innerhalb einer der vier DockAreas) im ausgedockten Zustand irgendwie verschiebbar machen? Es ist wie hier in einigen Beiträgen beschrieben immer noch resizebar. Praktisch funktioniert alles wie gewünscht: der LayoutManager passt sich an den freigewordenen Platz an und beim "andocken" umgekehrt ebenfalls.
Ich weiß, dass das wohl nicht so vorgesehen ist, es würde aber ein Interface ermöglichen, bei dem einige Elemente herauslösbar und frei bewegbar wären, ohne diese am Rand plazieren zu müssen.
2. Wenn ein DockWidget floatet würde ich gerne, dass es seine Größe auf den minimumSizeHint ändert. Es handelt sich um ein DockWidget, welches keinen praktischen Nutzen von mehr als der minimumSize hat.
Habe das folgendermaßen versucht:
Das DockWidget wurde im Designer erstellt und enthält daher das vom Designer erstelltes Widget, welches dann mein eigenes enthält (über promote). Daher 2x parent().
3. Laut dem Qt 3 Buch konnte man früher beim Eindocken in Erfahrung bringen, wo man eindockt, um die Orientierung entsprechend anzupassen. Mein DockWidget (bzw. das darin enthaltene Widget) kann breits eine vertikale oder horizontale Darstellung einnehmen. Nun würde ich das aber gerne automatisch je nach DockArea verändern.
Bei Qt 3 sollte das über QDockWindow::setOrientation() gehen. Ich möchte gerne auf die Qt3 support Klassen verzichten, wenn möglich.
Vielen Dank im voraus,
-Jens
1. Kann ich ein innerhalb eines LayoutManagers befindeliches DockWidget (also nicht wie vorgesehen innerhalb einer der vier DockAreas) im ausgedockten Zustand irgendwie verschiebbar machen? Es ist wie hier in einigen Beiträgen beschrieben immer noch resizebar. Praktisch funktioniert alles wie gewünscht: der LayoutManager passt sich an den freigewordenen Platz an und beim "andocken" umgekehrt ebenfalls.
Ich weiß, dass das wohl nicht so vorgesehen ist, es würde aber ein Interface ermöglichen, bei dem einige Elemente herauslösbar und frei bewegbar wären, ohne diese am Rand plazieren zu müssen.
2. Wenn ein DockWidget floatet würde ich gerne, dass es seine Größe auf den minimumSizeHint ändert. Es handelt sich um ein DockWidget, welches keinen praktischen Nutzen von mehr als der minimumSize hat.
Habe das folgendermaßen versucht:
Code: Alles auswählen
QWidget * pw = (QWidget *)parent()->parent();
QSize size = pw->minimumSizeHint();
pw->resize(size);
3. Laut dem Qt 3 Buch konnte man früher beim Eindocken in Erfahrung bringen, wo man eindockt, um die Orientierung entsprechend anzupassen. Mein DockWidget (bzw. das darin enthaltene Widget) kann breits eine vertikale oder horizontale Darstellung einnehmen. Nun würde ich das aber gerne automatisch je nach DockArea verändern.
Bei Qt 3 sollte das über QDockWindow::setOrientation() gehen. Ich möchte gerne auf die Qt3 support Klassen verzichten, wenn möglich.
Vielen Dank im voraus,
-Jens