Diverse Fragen zum DockWidget

Alles rund um die Programmierung mit Qt
Antworten
No-Nonsense
Beiträge: 1
Registriert: 31. Oktober 2006 16:52

Diverse Fragen zum DockWidget

Beitrag von No-Nonsense »

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:

Code: Alles auswählen

QWidget * pw = (QWidget *)parent()->parent();
QSize size = pw->minimumSizeHint();
pw->resize(size);
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
Antworten