Qt之基礎布局(QStackedLayout)

2021-10-03 18:30:36 字數 1625 閱讀 7024

qstackedlayout類提供了一堆小部件,其中一次僅乙個小部件可見。

qstackedlayout可用於建立類似於qtabwidget提供的使用者介面。基於qstackedlayout還構建了乙個便利的qstackedwidget類。

通過乙個小例子來介紹基本使用方法,效果如下

qstackedlayout可以填充許多子視窗小部件(「頁面」)。例如:

qwidget *firstpagewidget =

new qwidget;

qwidget *secondpagewidget =

new qwidget;

qwidget *thirdpagewidget =

new qwidget;

qstackedlayout *stackedlayout =

new qstackedlayout;

stackedlayout-

>

addwidget

(firstpagewidget)

; stackedlayout-

>

addwidget

(secondpagewidget)

; stackedlayout-

>

addwidget

(thirdpagewidget)

; qvboxlayout *mainlayout =

new qvboxlayout;

mainlayout-

>

addlayout

(stackedlayout)

;setlayout

(mainlayout)

;

qstackedlayout沒有為使用者提供切換頁面的內建方法。通常,這是通過qcombobox或qlistwidget完成的,該qcombobox或qlistwidget儲存qstackedlayout頁面的標題。例如:

qcombobox *pagecombobox =

new qcombobox;

pagecombobox-

>

additem(tr

("page 1"))

; pagecombobox-

>

additem(tr

("page 2"))

; pagecombobox-

>

additem(tr

("page 3"))

;connect

(pagecombobox,

signal

(activated

(int))

, stackedlayout,

slot

(setcurrentindex

(int))

);

stackingmode有兩個值,乙個是stackone(預設-顯示乙個頁面),乙個是stackall(顯示所有頁面),一般不使用。

[1] qt助手

[2]

Qt之表單布局(QFormLayout)

qformlayout管理輸入型控制項和關聯的標籤組成的那些form表單。qformlayout是乙個方便的布局類,其中的控制項以兩列的形式被布局在表單中。左列包括標籤,右列包含輸入控制項,例如 qlineedit qspinbox等。我們可以通過addrow const qstring label...

Qt 之格柵布局(QGridLayout)

qgridlayout 格柵布局,也被稱作網格布局 多行多列 柵格布局將位於其中的視窗部件放入乙個網狀的柵格之中。qgridlayout需要將提供給它的空間劃分成的行和列,並把每個視窗部件插入並管理到正確的單元格。柵格布局是這樣工作的 它計算了位於其中的空間,然後將它們合理的劃分成若干個行 row ...

Qt之表單布局(QFormLayout)

qformlayout管理輸入型控制項和關聯的標籤組成的那些form表單。qformlayout是乙個方便的布局類,其中的控制項以兩列的形式被布局在表單中。左列包括標籤,右列包含輸入控制項,例如 qlineedit qspinbox等。我們可以通過addrow const qstring label...