【Qt開發】QSplitter的使用和設置

 Qt庫版本:5.2.1css

    Qt Creator版本:3.0.1html

1 QSplitter的用途編程

    QSplitter使得用戶能夠經過拖動子窗口之間的邊界來控制它們的大小,例如函數


                                     圖1 窗口拆分示意圖工具

2 QSplitter的添加方法佈局

    QSplitter的添加方法有2種:a)經過Qt Creator的界面設計工具添加;b)直接使用C++代碼添加。其中,方法a最爲直觀和方便,本文將重點介紹這種方法,而方法b能夠見參考資料[1]。學習

2.1 經過Qt Creator添加QSplitter控件ui

    與Push Button等控件的添加方法不一樣,在「設計」視圖左側的控件列表中,並無對應的QSplitter控件,而是在上方面的工具欄中,以下圖紅色圈住的位置所示:url


                                                       圖2.1 設置窗口拆分的按鈕.net

    與上圖中左側的Push Button等控件的使用方法不一樣的是,QSplitter不能夠直接使用拖放的方式將其添加到界面中。根據參考資料[2][3]的說明可知,使用QSplitter以前,須要先添加將被分裂的兩個控件,而後同時選中它們,這時候上圖的QSplitter按鈕變成可用狀態,點擊「水平分裂器」便可將它們進行水平的佈局。

2.2 取消QSplitter

    取消上述的分裂佈局的方法是,同時選中已經被分裂的控件,而後點擊工具欄上方的「打破布局(B)」按鈕便可,以下圖所示:


                                          圖2.2 取消窗口拆分的按鈕

3 動態改變子窗口大小

    默認狀況下,使用鼠標拖動分割子窗口間的邊界時,子窗口會動態的改變其大小。然而,若是但願在鬆開鼠標時才改變其大小,能夠設置下面的參數,取消其勾選狀態便可:


4 子窗口最小尺寸

    在拖動子窗口間的邊界線時,有時咱們並不但願子窗口的寬度或者高度被縮小到零,所以能夠設置子窗口的最小尺寸:


                              圖 4.1 子窗口屬性截圖

    然而,就算是設置了上述值,還不行,還須要將下面的選擇去掉勾選狀態


                               圖4.2 QSplitter屬性截圖

5 子窗口比例

    默認狀況下,QSplliter中各個子窗口的大小等比例的,可是不少時候咱們並不但願這樣,所以參考資料[5][6][7][8]都提到如何解決這個問題,但都是直接經過C++代碼的方式去實現的。這裏主要介紹如何經過Qt Creator的「設計」界面來達到一樣的目的。

    選中QSplitter中的子窗口,而後設置其sizePolicy屬性以下圖所示


                           圖5 縮放因子設置

    分別將QSplliter中各子窗口的「水平伸展」值設置爲非零的值。此值越大,表示對應的子窗口在QSplliter中的分割比例越大(分割效果要運行程序時才呈現出來)。

7 實例

    學習Qt編程的一個很好的方法是學習其例程序。關於QSplitter的精彩例程有「chip」。

參考資料

[1]QSplitter 學習

[2]Using Layouts in Qt Designer

[3]qt 如何把qsplitter 添加到主窗口

[4]QSplitter的比例分割問題

[5]QT layout 使用總結 

[6]QSplitter的比例分割有關問題

[7]QSplitter setStretchFactor 函數的理解

[8]QSplitter大小

[9]請問QSplitter怎麼固定大小呢?

相關文章
相關標籤/搜索