Qt 布局管理器

2021-06-29 07:55:38 字數 1847 閱讀 1113

布局管理器是qt提供的一種自動完成窗體布局的工具,減少我們的工作量並且很美觀!

基本的布局管理器有四種:horizontal, vertical, grid, 和form 布局管理器。這些在前面的例子都能看到是如何使用的。qt的幫助文件裡也有乙個專門講他們的例子:

basic layouts

。 qhboxlayout, qvboxlayout, qgridlayout,和qformlayout 都繼承自qlayout

。layouts

通過呼叫

addwidget

或者addrow

將視窗部件加入進去,

qwidget

及其子類都有乙個

setlayout

的成員函式,可以將我們的布局管理器設定進去,這樣就完成了布局。

經常要用到的三個布局部件 qhboxlayout水平布局 qvboxlayout垂直布局 qgridlayout**布局   

qhboxlayout和qvboxlayout用法 基本相同: 

vlayout->addwidget(w1); vlayout->addwidget(w2); …… 

qgridlayout用法 

layout->addwidget(widget,row,column,rowspan,columnspan); 

layout->addlayout(layout,row,column,rowspan,columnspan);

(row,column):控制項佔據左上角的單元格位置 rowspan:控制項佔據的行數 

columnspan:控制項佔據的列數(不寫預設為1) 控制項隨窗體伸縮 將布局與主窗體建立聯絡 layout=new qhboxlayout(this); 

或者this->setlayout(layout); 

layout->addstretch();

可伸縮的空間 

layout->setalignment(qt::alignhcenter);//布局內控制項水平居中 

layout->setspacing(10);//控制項間隔為10 

layout->setmargin(10);//頁邊距為10 

qt設計器中spacer控制項 以上在對控制項位置調整時常用 

結合sizepolicy屬性控制布局管理中的控制項的尺寸自適應方式 也就是控制項隨主窗體伸縮方式(可自行增大或縮小) 

qsizepolicy sizepolicy(qsizepolicy::expanding, qsizepolicy::expanding);//可自行增大和收縮 

fixed:不能放大或縮小 

minimum:不能小於sizehint尺寸,可放大(若設定了最大尺寸) 

maximum:不能放大,可縮小到允許的最小尺寸(若setminimumsize(10,10)只能縮小到(10,10)) 

preferred:控制項的sizehint是他的hint,可以放大或縮小   

比例因子的使用 

例:布局中有左右兩控制項,右邊比左邊水平伸縮2倍 sizepolicy.sethorizontalstretch(1); sizepolicy.setverticalstretch(0); left->setsizepolicy(sizepolicy); 

sizepolicy.sethorizontalstretch(2); sizepolicy.setverticalstretch(0); left->setsizepolicy(sizepolicy);   

水平伸展比例(1,2) 垂直伸展比例(0,0) 

布局顧名思義是對控制項的位置的整體規劃,每個控制項之間都存在著位置關係,所以改變控制項(移動、關閉)會破壞布局 

結論:兩種方法結合使用,應該可以應對大部分介面布局

qt布局管理器入門

1.qt布局管理器的簡介 qtdesigner 是乙個視覺化的基於qt的使用者介面設計工具。用來生成 ui 定義檔案,而不考慮具體的語言。很好使用,掌握其中的布局管理是學習好qtdesigner的關鍵。布局管理器 在建立的視窗中,為了方便地管理其中的控制項,而誕生了布局管理器。將各種控制項按照實際需...

使用QT布局管理器

qt 布局管理介面 並茂是本文介紹的內容,先來看內容。今天來實現乙個溫度轉換器的介面。如下圖 水平布局管理器可以把它所管理的部件以水平的順序依次排開,例如上圖中中間的 centigrade 和 fahrenheit 兩段文字,就是水平排列的,這個時候就可以用水平布局管理器來實現。垂直管理器類似,它可...

qt之布局管理器

我們載入控制項的時候,我們可以用布局類來指定父視窗 然後widget可以直接載入布局類 qt的布局類 水平布局 qhboxlayout 垂直布局 qvboxlayout 柵格布局 qfromlayout 手動布局 常用介面 addwidget qwieget int row,int colunum,...