qt視窗居中顯示
在Qt下,程式執行後視窗預設就是在螢幕中央顯示的,但是後來發現在XP系統下沒有居中顯示,需要手動調整了。
這段程式碼有兩個問題:
1.這個desktop的寬高是包含了工作列的寬高,會導致在計算視窗位置時不會那麼精確,比如視窗的Top和Bottom值可能會差很多;
2.沒有考慮工作列在左側、上方、右側的情況。
availableGeometry是返回的不包含工作列的矩形區域,這樣就能保證居中位置更精確,
和網上其他方案一樣,大多數人會用類似這樣的程式碼:
move((desktop->width() - this->width())/2, (desktop->height() - this->height())/2);
這段程式碼有兩個問題:
1.這個desktop的寬高是包含了工作列的寬高,會導致在計算視窗位置時不會那麼精確,比如視窗的Top和Bottom值可能會差很多;
2.沒有考慮工作列在左側、上方、右側的情況。
改進後的程式碼如下:
move((qApp->desktop()->availableGeometry().width() - width()) / 2 + qApp->desktop()->availableGeometry().x(),
(qApp->desktop()->availableGeometry().height() - height()) / 2 + qApp->desktop()->availableGeometry().y());
availableGeometry是返回的不包含工作列的矩形區域,這樣就能保證居中位置更精確,
然後加上availableGeometry的XY座標,這樣就保證程式在那些調整了工作列位置的的桌面上也能出現在正確的位置,而不是和工作列重疊。
相關文章
- Qt 設定視窗居中顯示QT
- Qt5:視窗居中顯示QT
- Qt視窗螢幕居中顯示QT
- Qt中設定視窗居中顯示QT
- Qt 讓彈出的視窗居中顯示QT
- qt設定視窗在桌面居中顯示QT
- Qt視窗在螢幕上居中顯示QT
- Qt5.12視窗螢幕居中顯示QT
- Qt如何讓彈出的視窗居中顯示QT
- Qt之設定窗體居中顯示QT
- Qt視窗居中QT
- Qt程式設計技巧 窗體居中顯示QT程式設計
- qt 視窗預設居中QT
- QT居中螢幕顯示QT
- Java Swing應用程式GUI視窗居中顯示JavaGUI
- QT tableWidget 內容居中顯示QT
- QT 讓視窗(或控制元件)居中QT控制元件
- Go Qt5 建立空白視窗、視窗居中及關閉視窗事件GoQT事件
- Qt之彈出介面顯示在父視窗中間QT
- Qt介面設計如何讓文中居中顯示?QT
- window.open()實現彈出視窗居中顯示程式碼例項
- qt介面佈局之使視窗顯示出現在正中間位置QT
- Qt 把窗體顯示在螢幕的中心QT
- QT視窗類QT
- QWidget居中顯示
- CSS視窗垂直水平居中CSS
- IDEA整個視窗不顯示Idea
- pl/sql developer 顯示Window List視窗SQLDeveloper
- HTML 滑鼠放上顯示懸浮視窗HTML
- 顯示Pl/Sql Developer window list視窗SQLDeveloper
- jQuery滑鼠懸停顯示提示資訊視窗jQuery
- PyQt5 之視窗居中QT
- 【Qt】UI顯示中文QTUI
- Qt 時間顯示QT
- Qt TCP (小型聊天視窗)QTTCP
- 關於UIImageView的顯示問題——居中顯示或者UIView
- UILabel居中顯示的方法UI
- Qt 佈局管理 - 停靠視窗QT