QT常用布局管理器總結

2021-08-01 20:17:40 字數 3504 閱讀 4462

qt主要布局管理器分類

qhboxlayout(水平布局)

把子視窗從左到右排列在乙個水平行上。

樣例**:

qwidget *window =

new qwidget;

qpushbutton *button1 =

new qpushbutton("one");

qpushbutton *button2 =

new qpushbutton("two");

qpushbutton *button3 =

new qpushbutton("three");

qpushbutton *button4 =

new qpushbutton("four");

qpushbutton *button5 =

new qpushbutton("five");

qhboxlayout *layout =

new qhboxlayout;

layout->addwidget(button1);

layout->addwidget(button2);

layout->addwidget(button3);

layout->addwidget(button4);

layout->addwidget(button5);

window->setlayout(layout);

window->show();

qvboxlayout(垂直布局)把子視窗從上到下排列在乙個垂直列上。

樣例**:

qwidget *window =

new qwidget;

qpushbutton *button1 =

new qpushbutton("one");

qpushbutton *button2 =

new qpushbutton("two");

qpushbutton *button3 =

new qpushbutton("three");

qpushbutton *button4 =

new qpushbutton("four");

qpushbutton *button5 =

new qpushbutton("five");

qvboxlayout *layout =

new qvboxlayout;

layout->addwidget(button1);

layout->addwidget(button2);

layout->addwidget(button3);

layout->addwidget(button4);

layout->addwidget(button5);

window->setlayout(layout);

window->show();

qgridlayout(**布局)把子視窗排列在乙個二維的網格中,視窗可佔據多個單元格。

qgridlayout::addwidget()語法:

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

widget:為插入到這個布局的子控制項;

(row,column)為控制項佔據的左上角單元格位置;

rowspan是控制項佔據的行數,colunmspan是控制項佔據的列數。

(rowspan和colunmspan預設值為1)

樣例**:

qwidget *window =

new qwidget;

qpushbutton *button1 =

new qpushbutton("one");

qpushbutton *button2 =

new qpushbutton("two");

qpushbutton *button3 =

new qpushbutton("three");

qpushbutton *button4 =

new qpushbutton("four");

qpushbutton *button5 =

new qpushbutton("five");

qgridlayout *layout =

new qgridlayout;

layout->addwidget(button1, 0, 0);

layout->addwidget(button2, 0, 1);

layout->addwidget(button3, 1, 0, 1, 2);

layout->addwidget(button4, 2, 0);

layout->addwidget(button5, 2, 1);

window->setlayout(layout);

window->show();

stacked layouts(分組布局)qstackedlayout類把子控制項進行分組或者分頁,一次只顯示一組或者一頁,隱藏其他組或者頁上的控制項。

介面:int addwidget(qwidget * widget)

新增頁面,並返回頁面對應的索引

int count() const

獲取頁面數量

int currentindex() const

獲取當前頁面的索引

qwidget * currentwidget() const

獲取當前頁面

int indexof(qwidget * widget) const

獲取qwidget頁面所對應的索引

int insertwidget(int index, qwidget * widget)

在索引index位置新增頁面

void removewidget(qwidget * widget)

移除qwidget頁面,並沒有被刪除,只是從布局中移動,從而被隱藏。

qwidget * widget(int index) const

獲取索引index所對應的頁面

qt中有三種方式對窗體上的控制項進行布局管理:絕對位置定位(absolute positioning),手工布局(manual layout),布局管理器(layout managers)

絕對位置定位(控制項布局是固定位置,沒有自適應功能)

手工布局給出控制項的絕對位置,但是他們的尺寸根據視窗的大小確定,可以通過重寫窗體控制項的resizeevent()實現對子控制項的大小設定。

布局管理器,運用qhboxlayout、qvboxlayout、qgridlayout等布局。

Qt 布局管理器

布局管理器是qt提供的一種自動完成窗體布局的工具,減少我們的工作量並且很美觀!基本的布局管理器有四種 horizontal,vertical,grid,和form 布局管理器。這些在前面的例子都能看到是如何使用的。qt的幫助文件裡也有乙個專門講他們的例子 basic layouts qhboxlay...

qt布局管理器入門

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

使用QT布局管理器

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