qt拆分視窗可以使用qsplitter,也可以使用比較容易使用布局控制項來完成,本文章給出使用qsplitter分割視窗的例子。
qsplitter 繼承自qframe,而qframe又繼承自qwidget,這點很重要。
對於使用qsplitter拆分視窗:
新建乙個qsplitter,就意味著新建了乙個qwidget
不同的qsplitter物件通過指定父子關係來完成巢狀(劃分視窗)
qsplitter可以放置到你指定的任何視窗內
樣例1
核心**如下:
qdebug
("mainframe start...\n");
qsplitter *pspliter =
newqsplitter
(qt::horizontal)
;//此注釋指定父視窗,開啟後,後面的pspliter->addwidget(pleftedt); 可以注釋掉
//qtextedit* pleftedt = new qtextedit(pspliter);
qtextedit* pleftedt =
new qtextedit;
pleftedt-
>
settext
(qobject::tr(
"leftwindow"))
;//此注釋指定父視窗,開啟後,後面的pspliter->addwidget(prightedt); 可以注釋掉
//qtextedit* prightedt = new qtextedit(pspliter);
qtextedit* prightedt =
new qtextedit;
prightedt-
>
settext
(qobject::tr(
"rightwindow"))
;pspliter-
>
addwidget
(pleftedt)
;pspliter-
>
addwidget
(prightedt)
;pspliter-
>
setstretchfactor(0
,1);
//下面兩句設定左右兩列的寬度比為1:4
pspliter-
>
setstretchfactor(1
,4);
pspliter-
>
setwindowtitle
(qobject::tr(
"split-wnd demo1"))
;pspliter-
>
show()
;
需要新增的標頭檔案如下:
#include
#include
樣例2
核心**如下:
qdebug
("mainframe start...\n");
qsplitter *pspliter =
newqsplitter
(qt::horizontal)
;qtextedit* pleftedt =
newqtextedit
(pspliter)
;pleftedt-
>
settext
(qobject::tr(
"leftwindow"))
;qsplitter *prightspliter =
newqsplitter
(qt::vertical, pspliter)
;qtextedit* prighttopedt =
newqtextedit
(prightspliter)
;prighttopedt-
>
settext
(qobject::tr(
"right top window"))
;qtextedit* prightbtmedt =
newqtextedit
(prightspliter)
;prightbtmedt-
>
settext
(qobject::tr(
"left bottom window"))
;// 設定左右比為1:4
pspliter-
>
setstretchfactor(0
,1);
pspliter-
>
setstretchfactor(1
,4);
prightspliter-
>
setstretchfactor(0
,1);
//右面視窗上下視窗高度比為1:4
prightspliter-
>
setstretchfactor(1
,4);
pspliter-
>
setwindowtitle
(qobject::tr(
"split-wnd demo2"))
;pspliter-
>
show()
;
需要新增的標頭檔案如下:
#include
#include
樣列3
核心**:
qdebug
("mainframe start...\n");
// 1. 設定乙個總的splitter
qsplitter *pspliter =
newqsplitter
(qt::horizontal)
;//2. 設定 左邊的splitter
qsplitter *pleftspliter =
newqsplitter
(qt::vertical)
;qtextedit* plefttopedt =
newqtextedit
(pleftspliter)
;plefttopedt-
>
settext
(qobject::tr(
"left top window"))
;qtextedit* pleftbtmedt =
newqtextedit
(pleftspliter)
;pleftbtmedt-
>
settext
(qobject::tr(
"left bottom window"))
;//3. 設定右邊的東西wiget
qtextedit* prightedt =
new qtextedit;
prightedt-
>
settext
(qobject::tr(
"left window"))
;//4. 左右的wiget加入總的splitter
pspliter-
>
addwidget
(pleftspliter)
;pspliter-
>
addwidget
(prightedt)
;// 其他設定
pspliter-
>
setstretchfactor(0
,4);
pspliter-
>
setstretchfactor(1
,1);
//左右寬度比為4:1
pleftspliter-
>
setstretchfactor(0
,4);
//左面視窗上下視窗高度比為4:1
pleftspliter-
>
setstretchfactor(1
,1);
pspliter-
>
setwindowtitle
(qobject::tr(
"split-wnd demo3"))
;pspliter-
>
show()
;
需要新增的標頭檔案如下:
#include
#include
Python 拆分任意長度的可迭代物件
python作為現在主流的程式語言,有很多使用特性,比如今天要分享的可迭代物件的拆分。1.定長可迭代物件 首先,對於固定長度或已知長度的可迭代物件 包括但不限於元組 列表 字串等 可以通過複製給相同個數的變數即可 input tup a 2 x,y tup print x x print y y o...
根據指定字符集拆分任意字串
題目真不知道怎麼寫。我經常自己做一些小工具,所以並沒啥系統的東西可寫,這也並不是我想寫系統的東西,而且看別人寫的高大上的東西我也一點都不羨慕,真的 具體是這樣,有乙個列表,裡面存放的是一些不重複的字元,假定這些字元就是我需要找出的,或者說在我這個工具中,我需要在乙個任意字串中分別找出字元列表中有的和...
資料拆分之 垂直拆分 and 水平拆分
對資料進行拆分了。有垂直和水平兩種。垂直拆分比較簡單,也就是本來乙個資料庫,資料量大之後,從業務角度進行拆分多個庫。如下圖,獨立的拆分出訂單庫和使用者庫。水平拆分的概念,是同乙個業務資料量大之後,進行水平拆分。分庫分表方案 分庫分表方案最主要就是路由演算法,把路由的key按照指定的演算法進行路由存放...