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

?Qt庫版本:5.2.1

? ? Qt Creator版本:3.0.1

1 QSplitter的用途

? ? QSplitter使得用戶可以通過拖動子窗口之間的邊界來控制它們的大小,例如


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1 窗口拆分示意圖

2 QSplitter的添加方法

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

2.1 通過Qt Creator添加QSplitter控件

? ? 與Push Button等控件的添加方法不同,在“設計”視圖左側的控件列表中,并沒有對應的QSplitter控件,而是在上方面的工具欄中,如下圖紅色圈住的位置所示:


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2.1 設置窗口拆分的按鈕

? ? 與上圖中左側的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怎么固定大小呢?

轉載于:https://www.cnblogs.com/huty/p/8518160.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270923.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270923.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270923.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

異星工廠mod位置linux,異星工廠存檔在哪里

異星工廠存檔在哪里想必有些小伙伴還不是很清楚的吧,所以呢今天小編就為大家帶來了異星工廠MOD安裝位置介紹,一起來了解一下吧。異星工廠存檔在哪里%appdata%/factorio等同于C:\Users\您的用戶名\AppData\Roaming\Factorio因為各位的電腦用戶名不一樣。所…

pytorch 畫loss曲線_Pytorch使用tensorboardX可視化。超詳細!!!

1 引言我們都知道tensorflow框架可以使用tensorboard這一高級的可視化的工具,為了使用tensorboard這一套完美的可視化工具,未免可以將其應用到Pytorch中,用于Pytorch的可視化。本文主要是針對該解決方案提供一些介紹。TensorboardX支持scalar…

電腦技巧:電腦鍵盤F1~F12按鍵的妙用

目錄 F1:幫助鍵 F3:搜索按鍵 F4:打開瀏覽器歷史列表 F5:刷新功能 F6:定位地址欄 F7:在“命令提示符”中調用歷史指令 F8:啟動系統高級菜單 F9:無 F10:需要與Shift組合使用&#xff0…

linux vim基本操作,vim基本操作筆記

在Linux系統中有多種代碼編輯器,例如vim, gedit, emacs。這這些編輯器各有所長,就我個人而言,對于比較短的代碼,一般可以用vim解決就不用其它的工具,而長代碼的情況下更喜歡用gedit,這個gnome自帶的代碼編輯…

iOS 獲取當前對象所在的VC

id next [self nextResponder] ;while (next ! nil) {next [next nextResponder];if ([next isKindOfClass:[XX_ViewController class]]) {//return;}}轉載于:https://www.cnblogs.com/mapanguan/p/5853986.html

eureka 其它語言_SpringCloud之Eureka-Go語言中文社區

一、使用方法:1、添加maven依賴org.springframework.cloudspring-cloud-starter-netflix-eureka-server版本一般交由spring-cloud-dependencies管理。注意這個依賴的artifactId在Edgware以前是spring-cloud-starter-eureka-server,而在之后變成了spring-cloud-start…

操作系統:Win10系統下LocalNow和Roaming文件夾介紹

Win10操作系統下AppData文件夾包括以下子文件夾 - 漫游,本地和本地。 幾乎每個在Win10 PC上安裝的程序都會在AppData文件夾中創建自己的文件夾,并將其所有相關信息存儲在其中。AppData或應用程序數據是Windows 10中的一個隱藏文件夾,可幫助保…

c語言des算法實驗報告,C語言實現DES算法實驗報告解析.doc

C語言實現DES算法實驗報告解析xx工程大學實驗報告(2015-2016學年第一學期)報告題目: DES加密算法課程名稱: 密碼學B任課教員:專 業:學 號:姓 名:二O一六年一月十八日一、課程概述目的:培養學員的…

[noip2010]關押罪犯 并查集

第一次看的時候想到了并查集&#xff0c;但是不知道怎么實現&#xff1b; 標解&#xff0c;f[i]表示i所屬的集合&#xff0c;用f[in]表示i所屬集合的補集&#xff0c;實現的很巧妙&#xff0c;可以當成一個使用并查集的巧妙應用&#xff1b; 1 #include<iostream>2 #incl…

jvm什么是本地方法

一&#xff1a;什么是本地方法 二&#xff1a;舉例 三&#xff1a;為什么要使用Native Method

SQLServer:用戶自定義數據類型用法

今天給大家梳理一下SQLServer:用戶自定義數據類型用法&#xff0c;希望對大家能有所幫助&#xff01;1、基于基本數據類型創建的別名數據類型-- 創建生日的數據類型 CREATE TYPE birthday FROM datetime NULL; -- 創建用戶表 CREATE TABLE userInfo (id varchar(32), userNam…

python fsolve說明_Python fsolve()抱怨形狀.為什么?

具有函數f(x,y,z),我需要解決限制f(x,y,z) 0然后繪制它.我試圖為每對(y,z)找到f(x,y,z) 0的值x&#xff1a;from numpy import *from scipy.optimize import fsolvedef func(x,y,z):return xyzy linspace(0,1,100)z linspace(0,1,100)x0 zeros((y.size,z.size)) 0.5 # the …

C語言實現與功能的程序,用C語言實現Ping程序功能

2001 年 10 月 01 日大部分人用ping命令只是作為查看另一個系統的網絡連接是否正常的一種簡單方法。在這篇文章中&#xff0c;作者將介紹如何用C語言編寫一個模擬ping命令功能的程序。ping命令是用來查看網絡上另一個主機系統的網絡連接是否正常的一個工具。ping命令的工作原理…

數據庫知識:SQLServer變量相關知識介紹

今天給大家分享SQLServer變量相關介紹&#xff0c;希望對大家能有所幫助&#xff01;1、概述SQLServer變量對應內存中的一個存儲空間。它和常量不同&#xff0c;變量的值可以在執行過程中改變。2、分類SQLServer變量根據作用范圍不同主要分為局部變量和全局變量。2.1.局部變量局…

oauth基本流程和原理

組裝loginurl-》去第三方登錄驗證-》回調callbackurlcode&#xff08;票據&#xff09;-》本地根據codeappidappkey組裝url隱式curl獲取用戶信息-》完成登錄。 之所以要用callbackurl的形式是因為不能讓用戶在你本地輸入賬號密碼防止被盜號。 之所以不在callbackurl的時候&…

halcon輪廓擦除_halcon第十二講,毛刺去除

在視覺測量中我們很會被毛刺問題困擾&#xff0c;產生干擾的因素很多&#xff0c;有打光問題和產品本生帶毛刺&#xff0c;接下來給兄弟們帶來兩種去毛刺的方法。第一種read_image (Image1323153Ba0b96cf52f88f1, 1)rgb1_to_gray (Image1323153Ba0b96cf52f88f1, GrayImage)lapl…

c語言雙循環計算n的階乘,用C語言用循環實現N的階乘

匿名用戶1級2014-03-04 回答不要用數組&#xff0c;用vector來實現相應的功能&#xff0c;我給你寫個大概的框架&#xff0c;你向里面添加就好了1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include #include …

存儲知識:U盤的實際容量要比標注容量小,你知道原因嗎?

用過U盤的朋友一定都會知道&#xff0c;U盤的實際容量往往是達不到它標注的容量。比如一個16G的U盤&#xff0c;其實際容量一般只有14.7G左右。今天本文會給大家解釋其中的原因。 原因一&#xff1a;計算容量方法不同 存儲設備制造商為了計算方便&#xff0c;采用十進制計算方法…