2017-11-11 2 views
0

Ich möchte den randlosen modalen Dialog minimieren, so dass es in der Taskleiste bleiben sollte. Das Problem ist, der Dialog mit dem unteren Rand des Bildschirms minimiert:Minimieren grenzenlosen Dialog Problem

Screenshot:

0_1510351504895_2017-11-11_000440.jpg

Code:

setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); 
setWindowModality(Qt::ApplicationModal); 
this->setWindowState(Qt::WindowMinimized); 

Auch dieser Dialog ist nicht die Haupt Fenster, so denke ich, sollte es beide minimiert werden, wenn Sie im Dialog auf Minimieren klicken und das Problem in einem anderen nicht-randlosen modalen Dialog auftritt.

Screenshot mit minimierter modaler Dialog mit Grenzen:

0_1510400432885_FastStoneEditor1.jpg

Ich benutze Qt 5.9.2 auf 10. Windows Wie dieses Problem zu beheben? Danke im Voraus.

+0

Dies passiert, wenn Ihr Dialog ein übergeordnetes Fenster hat, das momentan nicht sichtbar ist. Versuchen Sie, Ihren Dialog ohne Eltern zu erstellen, d. H. 'SetParent (nullptr)'. (Dies bedeutet auch, dass Sie es selbst löschen müssen) – Felix

+0

@Felix Ja, ich weiß, dieses Problem tritt nur auf, wenn Eltern festgelegt wurde. Beim Entfernen des Elternteils funktioniert es gut. Ich dachte, es wäre ein Fehler in Qt? – Cobra91151

+0

Es ist beabsichtigt, da Ihr Dialog keinen eigenen Taskleisteneintrag hat. So wird es auf diese Weise minimiert. Es ist pro Design auf Windows und kein Fehler von Qt. Unter Linux werden beispielsweise beide Fenster gleichzeitig minimiert. Also für Windows ist dies das natürliche Verhalten – Felix

Antwort

1

So wurde das Problem behoben, indem Eltern entfernt oder auf nullptr gesetzt wurde. Dank @Felix-Informationen ist dies kein Fehler in Qt, es ist standardmäßig Windows Verhalten.