Qt Widget 布局管理系統

2021-10-22 18:28:55 字數 1375 閱讀 2430

qt的布局管理系統提供了強大的機制來自動排列視窗中的部件,確保它們有效的使用空間。qlayout的幾個子類,這裡將它們稱作布局管理器。所有qwidget的子類的例項(物件)都可以使用布局管理器管理位於它們之中的子部件,qwidget::setlayout()函式可以在乙個部件上應用布局管理器。一旦乙個部件上設定了布局管理器,那麼它會完成以下幾種任務:

qlayout類是布局管理器的基類,是乙個抽象基類,繼承自qobject和qlayoutitem類,qlayoutitem類提供了乙個供qlayout操作的抽象專案。qlayout和qlayoutitem都是在設計自己的布局管理器時才使用的,一般只需要使用qlayout的幾個子類即可,它們分別是qboxlayout(基本布局管理器)和qstackedlayout(棧布局管理器)。

基本布局管理器qboxlayout類可以使子部件在水平方向或者垂直方向排成一列,它將所有空間分成一行盒子,然後將每個部件放入乙個盒子中。

#include

qhboxlayout *layout =

new qhboxlayout;

// 正確用法是要例項化控制項物件後使用

// 向布局中新增控制項

layout-

>

addwidget

(qpushbutton)

;layout-

>

addwidget

(qlabet)

;// 設定部件間的間隔

layout-

>

setspacing(50

);// 設定布局管理器到邊界的距離

layout-

>

setcontentsmargins(0

,0,50

,100);

// 將這個布局設定為this的布局

setlayout

(layout)

;

柵格布局管理器qgridlayout類使部件在網格中進行布局,他將所有的空間分隔成一些行和列,行和列的交叉處形成了單元格,然後將部件放入乙個確定的單元格中。

qgridlayout *layout =

new qgridlayout;

// 新增部件,從第0行0列開始,佔據1行2列

layout-

>

addwidget

(qwidget,0,

0,1,

2);setlayout

(layout)

;

窗體布局管理器(qformlayout)類用來管理表單的輸入部件以及與它們相關的標籤。

簡單搭建後台管理系統布局

最終實現的效果如下 要求 上面的header固定不動,左面的選單和內容部分的高度到瀏覽器的底部,並且他們的內部可以滾動 寫這個demo需要考慮的幾個問題 1 如果不給html和body設樣式他們的高度是什麼樣的,結果發現他們是沒有高度的和普通div一樣。所以應該把html和body的高度設定成100...

布局管理 流式布局

2007 11 16 14 18 使用流式布局管理器時,gui元件將按照新增入容器的順序自左而右排列在一行上,如果一行空間不足,則另起一行。預設情況下,元件是劇中排列的。可以通過改變面板的預設布局管理器來改變元件在每一行上的排列位置。語句示例如下 flowlayout fl new flowlayo...

布局管理之Grid布局

tkinter grid常用選項 column 指定將元件放入哪列,第一列的索引為 0。columnspan 指定元件橫跨多少列。row 指定元件放入哪行,第一行的索引為 0。rowspan 指定元件橫跨多少行。sticky 對齊方式,類似 pack 方法的 anchor 選項,同樣支援 n e s...