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 兩段文字,就是水平排列的,這個時候就可以用水平布局管理器來實現。垂直管理器類似,它可...