做韓國網(wǎng)站有哪些東西嗎手機(jī)網(wǎng)站排名優(yōu)化軟件
參考:
C++ GUI Programming with Qt 4, Second Edition
本地環(huán)境:
win10專業(yè)版,64位,Qt5.12
目錄
- 效果
- 實(shí)現(xiàn)
- Qt Designer操作
- 代碼
- addStretch()解釋
效果
首頁有三個(gè)按鈕和最近文件列表。
拖動(dòng)窗口,按鈕和文件列表仍然處于居中狀態(tài)。
實(shí)現(xiàn)
Qt Designer操作
首先新建一個(gè)界面類,起名叫MainTabWidget。
創(chuàng)建完成后,在Qt Designer中打開ui,右鍵,插入頁。先制作主頁。
主頁顯示的名稱需要修改QTabWidget的currentTabText
屬性。現(xiàn)在就把那個(gè)屬性改成主頁
。
然后準(zhǔn)備一些widget。每個(gè)pushButton下面放兩個(gè)label。
label如何修改格式?找到stylesheet,打開后輸入顏色:
注意這里不要點(diǎn)添加顏色,如果用調(diào)色盤選,可能報(bào)錯(cuò):無效的樣式表。直接像html一樣寫就可以了。(短的話直接在表格里填就行)
放好組件之后做布局。
先把每個(gè)按鈕跟兩個(gè)label豎直布局,然后把幾個(gè)按鈕和spacer做水平布局,最后做一個(gè)總的豎直布局。總布局起名叫homeLayout,設(shè)置layoutTopMargin
為20。布局完成后如下圖所示:
對象結(jié)構(gòu)如下圖所示:
tableWidget的設(shè)置,主要有這幾點(diǎn):
- 背景顏色:
stylesheet
。類似上面設(shè)置文字顏色的做法。 - 去掉邊框:QFrame下
frameShape
,選擇NoFrame
。 - 不要行名:
verticalHeaderVisible
去掉勾選
還有一些屬性可以根據(jù)需求設(shè)置。
代碼
需要修改MainTabWidget::MainTabWidget()
,在setupUi()
后增加代碼:
ui->homeLayout->addStretch(1);
ui->homeWidget->setLayout(ui->homeLayout);
addStretch()解釋
函數(shù)addStretch()的參數(shù)是拉伸因子(stretch factor),用于確定布局中的子控件在空間分配中的相對拉伸比例。
添加拉伸因子后,布局將根據(jù)拉伸因子的比例分配可用空間給子控件。拉伸因子決定了子控件在布局中占據(jù)的空間的大小。
addStretch()方法可以有一個(gè)整數(shù)參數(shù),表示拉伸因子的權(quán)重。權(quán)重越高,指定的子控件在布局中占據(jù)的空間就越大。如果指定多個(gè)拉伸因子,它們的比例將決定子控件在布局中的分布。
例如,如果使用如下代碼:
layout.addStretch(2)
layout.addStretch(1)
該布局中的第一個(gè)子控件將占據(jù)的空間是第二個(gè)子控件占據(jù)空間的兩倍。
下一篇會(huì)描述如何動(dòng)態(tài)添加和刪除tab頁,以及最近打開文件列表的獲取及tableWidget填充。
歡迎關(guān)注。