2015-01-09 8 views
5

Ich habe ein UI-Fenster durch das Hauptfenster aufgerufen. Ich möchte, dass es nicht modal ist, aber auf dem Elternteil bleiben, und wenn das Elternteil minimiert ist, damit minimiert werden.Qt: Keep Kind Fenster oben auf Eltern, auch wenn es den Fokus verliert

Wenn der Benutzer Änderungen in beiden vornehmen möchte, sollte er dazu in der Lage sein, und das Kind würde nicht geschlossen werden, wenn der Benutzer es nicht schließt. Das Kind würde immer oben auf dem Elternteil bleiben - aber nicht über alles andere.

m_child->show(); 
m_child->activateWindow(); 

Die oben genannten Orte das Kind auf dem Elternteil, ermöglicht es die Arbeit an dem Eltern, während das Kind begonnen hat ... aber das Kind hinter dem Eltern versteckt ist, wenn es den Fokus verliert.

m_child->show(); 
m_child->activateWindow(); 
m_child->raise(); 

Keine Änderung.

Mit

Qt::WindowFlags flags = m_child->windowFlags(); 
m_child->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint); 
m_child->show(); 
m_child->activateWindow(); 

Das Kind ist an der Spitze, wie ich will, kann ich auf die Eltern arbeiten, während das Kind noch an der Spitze gezeigt wird ... aber das übergeordnete Minimierung des Kindes nicht minimieren und , und das Kind bleibt über allen Fenstern (es sollte nur auf dem Elternteil bleiben)

Wie kann ich einen "Toolbox-Stil" -Effekt machen - das Kind oben auf Eltern haben, während der Elternteil aktiv ist, aber minimieren Kind, wenn der Elternteil minimiert ist?

Ich experimentierte auch mit allen Fensterflaggen, aber sie erlauben dem Kind, sich zu verstecken, wenn es den Fokus verliert.

Antwort

9

Sie können dieses Verhalten erreichen, indem Sie dem Toolbox-Widget das Flag Qt::Tool hinzufügen und das Hauptfenster als übergeordnetes Element festlegen.

Siehe http://doc.qt.io/qt-5/qt.html#WindowType-enum

+0

Vielen Dank! Ich habe die Qt :: Tool-Flagge ausprobiert, wusste aber nichts über die Eltern, das funktioniert perfekt! – Thalia

+1

Für Mac ist das Verhalten nicht so, wie ich will - das "Tool" -Fenster bleibt immer oben, auch wenn ich die App minimiert ... Ich habe versucht SetAttribute (Qt :: WA_MacAlwaysShowToolWindow, false) aber es scheint keinen Unterschied zu machen .. Gibt es ein Flag, das Windows-Verhalten auf Mac nachahmt? – Thalia

Verwandte Themen