QT視窗尺寸,視窗大小和大小改變引起的事件 QResizeEvent。 阿新 • • 發佈:2019-02-09 frameGeometry() 幾何尺寸(位置+大小) 對於視窗,包含視窗裝飾器 x()y()pos() 只包含位置資訊(左上角座標) move() 只移動位置 geometry() 幾何尺寸(位置+大小) 不包含視窗裝飾器 width()height()rect()size() 只包含大小資訊 setGeometry() 改變位置+大小 resize() 只改變大小 一直在考慮怎麼使中心視窗在主視窗全屏之後,中心視窗也按比例放大。其中包括,中心視窗的大小適應,中心視窗1.建立你的UI,其中使用弄好你的頂級佈局,選中widget 視窗 - 點選右鍵 - 佈局 - 柵格佈局。2.建構函式中 複製程式碼 centralWidget = new QWidget; QWidget * a = new QWidget(centralWidget); ui1->setupUI(a); a->hide(); QWidget * b = new QWidget(centralWidget); ui2->setupUI(b); b->hide(); setCentralWidget(centralWidget) //這樣的好處在於,你可以弄很多ui,想使用哪個UI 直接uin->setupUI(widgetn),再widgetn->show()就可以了。3.但是如果你想拖動主視窗的時候,能夠讓視窗中的元件隨著視窗也能縮放的話,需要重寫resizeEvent,原因在於,在構造之後,子視窗的大小就是固定的。 複製程式碼 void resizeEvent(QresizeEvent* size){ centralWidget->resize(frameGeometry().size()); //是採用size()還是frameGeometry.size()根據自己的需求。}有什麼問題,請留言說明,大家一起交流並且解決。附加裝置相關的螢幕尺寸資訊,如果你重寫resizeEvent 的話,我認為這是不必要的。QDesktopWidget* desktopWidget = QApplication::desktop(); //得到客戶區矩形QRect clientRect = desktopWidget->availableGeometry(); //得到應用程式矩形QRect applicationRect = desktopWidget->screenGeometry();