分隔控制項(Splitters)

2021-06-25 10:59:03 字數 2058 閱讀 5759

中英文對照splitter handles(分隔條)

乙個qsplitter控制項中可以包含其他控制項,這些控制項被乙個分隔條隔開,託拽這個分隔條,裡面的控制項的大小可以改變。qsplitter控制項經常做為布局管理器使用,給使用者提供更多的介面控制。

qsplitter控制項中的子控制項總是按順序自動並肩排列(或者上下排列)。相鄰的控制項之間有乙個分隔條。下面是建立圖6.7的窗體的**:

這個例子中的窗體有乙個qsplitter控制項,其中有三個水平排列的qtextedit控制項,和布局管理器不同,qsplitter不但可以排列子控制項,還有乙個可視的外觀,qsplitter控制項從qwidget繼承,擁有qwidget所有的功能。

第一次是呼叫rightsplitter的setstretchfactor,把索引值為1的控制項(textedit)的拉伸係數設定為1,第二次是呼叫mainsplitter的setstretchfactor(),設定控制項rightsplitter的拉伸係數為1。這樣,textedit控制項就能夠得到盡可能多餘的空間。

當應用程式啟動時,qsplitter根據子控制項的初始尺寸或者sizehint合理分配每乙個子控制項的大小。程式中,我們可以呼叫qsplitter::setsizes()改變分隔條的位置。qsplitter還可以儲存當前的狀態,在程式下一次執行時恢復以前的狀態。下面是writesettings()函式,儲存當前分隔條的狀態:

void mailclient::writesettings()

下面是相應的readsettings()函式:

void mailclient::readsettings()

qt designer也支援qsplitter。把子控制項放到合適的位置,把他們選中,選擇選單form|lay out horizontally in splitter或者form|lay out verticallly in splitter,所選擇的子控制項就被加入到qsplitter控制項中。

對qsplitter進行水平或者垂直巢狀可以實現更加複雜的布局。例如,圖6-9所示的mailclient程式中,就是乙個垂直方向的qsplitter控制項中巢狀了乙個水平方向的qsplitter控制項。

下面的**是mailclient程式的主視窗類建構函式**:

mailclient::mailclient()

建立完我們所需要顯示三個控制項(messagetreewidget,textedit,folderstreewidget)後,我們建立乙個垂直的qsplitter,rightsplitter控制項,把messagetreewidget和textedit控制項加到rightsplitter中。然後建立乙個水平的qsplitter,mainsplitter控制項,把rightsplitter和folderstreewidget加入到mainsplitter中。把mainsplitter做為qmainwindow的**控制項。

當使用者改變視窗的大小時, qsplitter通常給所有的子控制項一樣的空間。在mailclient程式中,我們希望左邊的檔案樹控制項(folderstreewidget)和訊息樹控制項(messagetreewidget)保持它們的大小,把其他的空間都分配給qtextedit。這由兩個setstretchfactor()呼叫實現。第乙個引數是0開始的子控制項的索引值,第二個引數為我們設定的拉伸係數,預設值為0。

bcb string 分隔 捲簾分隔

下列場所在防火分隔時不能使用防火捲簾等效替代的是 a甲 乙類生產部位 b廠房內有明火和高溫的部位 c建築內使用丙類液體的部位 d乙醇廠房內劃分防火分割槽的防火牆 e兒童遊樂廳與商場其它區域分隔的防火隔牆 解析 根據 建築設計防火規範 gb50016 2014 2018年版 6.2.3,建築內的下列部...

awk linux 分隔 awk多分隔符

awk的 f引數可以指定新的分隔符,有些時候可能需求指定多個分隔符,比如下面的內容 root n1 netstat an grep estab udp 0 0 192.168.1.120 35570 212.47.249.141 123 established udp 0 0 192.168.1.1...

Nginx 日誌分隔

bin bash access log dir source opt logs dir report opt htdocs domain public access log cd dir source mkdir p dir report date y date m mv domain.log di...