Qt的布局 部件布局

2021-07-03 16:06:22 字數 1512 閱讀 5133

qt提供了幾個類使得部件布局更加簡單。

·qgroupbox

·qbuttongroup

·qsplitter

·qwidgetstack

1、qgroupbox類

用於在部件周圍繪製乙個框架。可以在框架的上端新增一些描述資訊。

qgroupbox *groupbox=new qgroupbox(this);

groupbox->setgoemetry(10,10,130,80);

group->settitle("a group box");//設定分組框的標題

2、qbuttongroup類

與qgroupbox類非常相似,只是在布置按鈕方面有特殊的功能。最常用的就是布置單選按鈕。

將單選按鈕插入到qbuttongroup類物件是,他們之間是自動互相排斥的。但是為了使其他按鈕之間互斥,必要呼叫qbuttongroup::setexclusibe(true)函式。該類用法參見qt布局-----按鈕標籤表的使用。(

3、qsplitter類

該類物件可以使使用者通過拖動拆分器提供的部件間的分界線控制子部件的大小。

qsplitter spliter=new qsplitter(this);//建立拆分器

spliter->setgoemetry(10,10,130,80);

qpushbutton b1=new qpushbutton ("button 1",spliter);

qpushbutton b2=new qpushbutton ("button 2",spliter);//將拆分器作為兩個按鈕的父物件,則在兩個按鈕之間插入了乙個拆分器。

拖動兩個按鈕之間的拆分器可以改變按鈕的大小。預設為水平拆分器,也建議建立垂直拆分器。通過呼叫qsplitter::setorientation(vertical)或者在建構函式中使用qsplitter(vertical,this)。

使用qsplitter::setminmumsize()函式來實現拆分器部件中的最小尺寸。

qsplitter::setresizemode()實現定義部件的大小是否隨分割器尺寸的改變而改變。

4、qwidgetstack類

當有多個部件,並且每次只希望顯示乙個部件時,就需要使用qwidgetstack類。

qwidgetstack *widgetstack=new qwidgetstack(this);

widgetstack->setgeometry(10,10,130,80);

widgetstack->addwidget(b1,1);//第乙個引數為被新增部件指標,第二個引數為該部件在棧中的唯一整數標識號。標識號可以代替指標用作

// raisewidget()函式的引數

widgetstack->addwidget(b2,2);//將2個按鈕新增的widgetstack中

widgetstack->raisewidget(b1);//使b1按鈕可見

QT入門筆記 視窗部件的布局

執行結果 解析 上面的程式都比較簡單。void setwindowtitle const qstring 設定視窗標題 qspinbox the qspinbox class provides a spin box widget.上圖左邊即為qspinbox qslider the qslider ...

QT布局實踐1 布局雛形

一直以來對布局感覺get不到點,最近就花點時間來實踐一下,弄乙個純手動布局的介面。力求做到全適應。做乙個介面慢慢加東西把,大概是下面圖的樣子,紅色區域隨意伸縮,綠色區域也是,但是寬度有最大值和最小值。藍色和橙色是固定的高,只能進行左右伸縮。大概就是先在qhboxlayout1 中加入紅綠,qhbox...

qt布局問題

替乙個widget設定布局有兩種方法。1layout 建構函式傳遞qwidget qvboxlayout mainqvboxlayout new qvboxlayout mainwidget 2layout建構函式傳遞null,呼叫qwidget的setlayout設定布局 qvboxlayout ...