我正在使用MinGW爲Windows 7構建QT應用程序。 在我的代碼中,我有一個派生自QMainWindow的類。這個主窗口會多次顯示和關閉(在不同的屏幕上)。我正在使用以下代碼顯示窗口:QT QMainWindow無幀大小的全屏幾何體
this->blockSignals(true);
this->close();
this->blockSignals(false);
this->showMaximized();
this->setGeometry(QApplication::desktop()->availableGeometry(mDisplayNumber));
只有第一次執行此代碼時,窗口會按預期方式顯示。接下來,窗口顯示爲最大化,但我在屏幕底部丟失了幾個像素。
我還接收在QT的警告,則執行代碼時:
setGeometryDp:無法在QWidgetWindow /設定幾何1600x1172 + 0 + 0 'CDisplayClassWindow'。生成的幾何圖形:1600x1150 + 0 + 22(幀:8,30,8,8,自定義邊距:0,0,0,0,最小尺寸:780x539,最大尺寸:16777215x16777215)。
我不明白的是,desktop()> availableGeometry返回的幾何看起來不正確。我的問題是,我如何確定警告消息中顯示的幾何圖形? (1600x1150 + 0 + 22)
我在linux ubuntu中以mDisplayNumber爲-1的方式嘗試了上面的代碼。在按鈕單擊&構造函數中執行代碼。它工作得很好。是否有可能在代碼中提供更多的細節。 (我使用QT Creator 3.6.0&Library 5.5.1) – Jeet
沒有太多的細節信息要添加。我認爲這是一個Windows特定的問題。 QApplication :: desktop() - > availableGeometry()的結果看起來是正確的。我的屏幕的屏幕分辨率是1600x1200。這個函數的結果是1600x ** 1172 **,所以看起來好像爲任務欄保留了28個像素。但調用showMaximized()會導致上面顯示的警告。 (我使用的是Qt 5.5.0) – MvHorssen