Qt學習 布局管理的使用方法

2021-06-28 23:29:04 字數 2765 閱讀 1749

分割視窗qsplitter類在應用程式中常常可能用到,它可以靈活地設定視窗的布局。通過乙個小例項體先會一下qsplitter的使用。

-------建立工程時,base class選擇「qmainwindow」

#include "splitter.h"

最終效果:

錨接視窗

錨接視窗又被稱作是停靠視窗,是指使用者可以在工具欄區域內或區域間隨意移動的視窗。使用者可以對停靠視窗解鎖,使該視窗浮在應用程式頂部,也可以使視窗最小化。錨接視窗是由qdockwidget類提供的。通過 qdockwidget例項化並新增窗體,可以建立自定義錨接視窗。如果錨接視窗佔據水平區域(例如,在主視窗的頂部),那麼窗體將會橫向排列; 

如果佔據垂直區域(例如,在主視窗的左側),那麼窗體將會縱向排列。錨接區域可巢狀,以允許錨接視窗堆疊為多行或多列。圖8-26停靠區域包括三個停靠視窗,放在垂直標籤頁中; 其中乙個停靠視窗帶有自定義的標題欄和窗體控制項。停靠視窗可顯示垂直的標題欄,視窗之前還可共享區域 –當發生區域共享時,停靠 視窗將容納在標籤頁中。 還可給停靠窗體設定風格獨特的標題欄和窗體控制項。

有些應用程式(包括 qtdesigner和qtlinguist)經常使用錨接視窗。

qmainwindow為操作者提供儲存並恢復錨接視窗和工具欄的位置的功能,這樣,應用程式可以輕鬆恢復使用者首選工作環境。

8.7.1建立錨接視窗的方法和流程

在主視窗程式中建立錨接視窗的一般流程如下:

1.建立錨接窗體

建立乙個qdockwidget物件的錨接窗體。

2.設定此錨接窗體的屬性

通常呼叫setfeatures()及setallowedareas()兩種方法。

3.新建乙個要插入錨接窗體的視窗部件

常用的一般為qlistwidget和qtextedit。

4.把視窗部件插入錨接窗體

呼叫qdockwidget的setwidget()方法。

5.在mainwindow中加入此停靠窗體

使用adddockwidget()方法。

以下是一段示例**,演示了上述方法和流程。

//停靠視窗

qdockwidget*dock= newqdockwidget(tr("dockwindow"), this ); 

dock->setfeatures( qdockwidget::dockwidgetmovable );

dock->setallowedareas(qt::leftdockwidgetarea|qt::rightdockwidgetarea);

qtextedit*te= newqtextedit();

te->settext(tr("dock window!"));

dock->setwidget( te);

adddockwidget( qt::rightdockwidgetarea, dock);

8.7.2設定錨接窗體狀態的方法

主要是setallowedareas()和setfeatures()方法的使用。

其中,setallowedareas()方法設定停靠窗體可停靠的區域,原型如下:

voidsetallowedareas( qt::dockwidgetareasareas);

引數areas由qt::dockwidgetareas列舉變數指定了錨接窗體可停靠區域,包括表8-6

列舉的幾種。

qt::leftdockwidgetarea                    可在主視窗的左側停靠

qt::leftdockwidgetarea                    可在主視窗的右側停靠

qt::rightdockwidgetarea                   可在主視窗的頂端停靠

qt::bottomdockwidgetarea                  可在主視窗的底部停靠

qt::alldockwidgetareas                    可在主視窗任意(以上4個)部位停靠

qt::nodockwidgetarea                      只可停靠在插入處

以上各種情況可以疊加使用,採用或(|)的方式進行綜合設定。

setfeatures()方法設定停靠窗體的特性,原型如下:

voidsetfeatures(dockwidgetfeaturesfeatures);

引數features由qdockwidget::dockwidgetfeature列舉變數指定錨接窗體的特性,

qdockwidget::dockwidgetclosable         停靠窗可關閉,右上角的關閉按鈕

qdockwidget::dockwidgetmovable          停靠窗可移動

qdockwidget::dockwidgetfloatable        停靠窗可浮動

qdockwidget::dockwidgetfeatures         此引數表示擁有停靠窗的所有特性

qdockwidget::nodockwidgetfeature        不可移動、不可關閉、不可浮動

此引數也可採用或(|)的方式對停靠窗進行特性的設定。 

rem布局使用方法

下面的 一是我根據rem的使用經驗,自己寫的乙個rem.js,發現很好用,能適用所有移動端h5頁面的自適應需求 一 window.onload function window.onresize function function getrem pwidth,prem 下面的 二,是小公尺的移動端h5...

Qt學習07 布局管理

本文分別介紹分割視窗類qsplitter 停靠視窗類qdockwidget 堆疊窗體類qstackwidget的使用,並通過例項展示效果。本文中的ui均由 實現,注意新增相應庫函式到頭檔案中 qsplitter用於分割視窗的布局。例1 三個視窗可以任意切割大小。include widget.h 輸出...

qt布局巢狀 QT 布局管理器的巢狀使用

int main int argc,char ar qwidget win new qwidget 0 qlineedit line new qlineedit win line settext line qtextedit text new qtextedit win text settext t...