2017-11-11 90 views
0

我想最小化無邊框模式對話框,以便它保持在任務欄中。問題是,最小化到屏幕底部的對話框:最小化無邊框對話框問題

截圖:

0_1510351504895_2017-11-11_000440.jpg

代碼:

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

而且,這個對話框是不是主要窗口,所以我認爲在對話框中單擊最小化時它應該最小化它們,並且問題出現在另一個非無邊框模式對話框中。

截圖以最小的模態對話框有邊界:

0_1510400432885_FastStoneEditor1.jpg

我在Windows 10使用Qt 5.9.2如何解決這個問題?提前致謝。

+0

如果您的對話框有一個父窗口,但當前不可見,則會發生這種情況。嘗試創建沒有父對象的對話框,即'setParent(nullptr)'。 (這也意味着你需要自己刪除它) – Felix

+0

@Felix 是的,我知道,這個問題只發生在父設置。當刪除父母它運作良好。我認爲這是Qt中的一個錯誤? – Cobra91151

+0

這是故意的,因爲您的對話框沒有任何任務欄條目。因此,它得到了最小化。這是每個窗口設計,而不是Qt的錯誤。例如,在Linux上,它一次最小化兩個窗口。所以對於windows,這是自然的行爲 – Felix

回答

1

因此,通過刪除父母或將其設置爲nullptr已解決此問題。感謝@Felix的信息,這不是Qt中的一個bug,它的默認行爲是Windows