QDockwidget immmer sichtbar

Alles rund um die Programmierung mit Qt
Antworten
hubipet
Beiträge: 5
Registriert: 16. Mai 2009 10:50

QDockwidget immmer sichtbar

Beitrag von hubipet »

Hallo Forum

Ich habe eine Anwendung mit eine MainWindow und mehreren Dockwidgets.
Nun habe ich folgendes Problem:
Wenn das Dockwidget floating ist und ich eine andere Applikation anklicke z.B. ein Command Fenster verschwindet das Dockwidget
und erscheint wieder wenn ich in meine Applikation klicke.

Gibt es eine Möglichkeit, dass das Dockwidget immer sichtbar bleibt?

Gruß
Peter
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: QDockwidget immmer sichtbar

Beitrag von brax »

Grundsätzlich macht man das über die Methode QWidget::setWindowFlags und dort mit dem Flag Qt::WindowStaysOnTopHint. Ich bin mir nicht zu 100% sicher, wie DockWidgets darauf reagieren. Außerdem möchtest Du es ja nur, wenn das Widget floating ist. Mein Ansatz wäre, auf das Signal QDockWidget::dockLocationChanged zu reagieren und wenn die area==Qt::NoDockWidgetArea (ich gehe davon aus, dass sie das im floating Fall sein wird) setzt Du das flag, sonst "unsetzt" Du das Flag.

Anmerkung: Always on top Fenster haben Ihre Tücken! Wenn Du z.B. einen modalen Dialog in Deiner Anwendung öffnest, passiert es gerne, dass dieser hinter einem always on top Fenster auftaucht. Das ist dann etwas problematisch...
hubipet
Beiträge: 5
Registriert: 16. Mai 2009 10:50

Re: QDockwidget immmer sichtbar

Beitrag von hubipet »

Hallo brax,

Ich habe das mal ausprobiert und muss sagen QDockwidget nimmt das übel.
Das Fenster sah etwas eigenartig aus und reagierte auch nicht mehr auf Eingaben ??
Ich habe gerade noch einen Tip bekommen der in Richtung WindowFlags geht.
Die flag QT::Tool soll ein solches verhalten verursachen

- closed when application becomes inactive
- shown when application becomes active

Mal sehen ob ich damit weiter komme.
Aber schönen Dank für deine Hilfe.
Antworten