QT窗体控件自适应大小
介紹QT中的幾種常見布局
常用的布局方法:
(1)使用水平布局類QHBoxLayout;
(2)使用垂直布局類QVBoxLayout;
(3)使用網(wǎng)格布局類QGridLayout;
(4)使用表格布局類QFormLayout;
(5)使用分組布局類QStackLayout(QStackedLayout類把子控件進(jìn)行分組或者分頁,一次只顯示一組或者一頁,隱藏其他組或者頁上的控件)。
當(dāng)整體的布局完成以后控件就可以跟著界面放大縮小了
要想是控件根據(jù)窗體進(jìn)行調(diào)整,最為重要的一點(diǎn)就是設(shè)置窗口部件的大小策略,各控件均有這一項(xiàng)設(shè)置,如下圖所示。
在這次項(xiàng)目中,當(dāng)時(shí)沒有對(duì)兩個(gè)窗體設(shè)置最小大小,以及策略,結(jié)果每次布局都會(huì)縮小最小或者布局很難看。
這部分具體的參數(shù)解釋摘錄如下:
結(jié)合控件的SizePolicy屬性,來控制布局管理中的控件的尺寸自適應(yīng)方式。
控件的sizePolicy說明控件在布局管理中的縮放方式。Qt提供的控件都有一個(gè)合理的缺省sizePolicy,但是這個(gè)缺省值有時(shí)不能適合所有的布局,開發(fā)人員經(jīng)常需要改變窗體上的某些控件的sizePolicy。一個(gè)QSizePolicy的所有變量對(duì)水平方向和垂直方向都適用。下面列舉了一些最長用的值:
A. Fixed:控件不能放大或者縮小,控件的大小就是它的sizeHint。
B. Minimum:控件的sizeHint為控件的最小尺寸??丶荒苄∮谶@個(gè)sizeHint,但是可以
放大。
C. Maximum:控件的sizeHint為控件的最大尺寸,控件不能放大,但是可以縮小到它的最小
的允許尺寸。
D. Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者縮小
E. Expandint:控件可以自行增大或者縮小
注:sizeHint(布局管理中的控件默認(rèn)尺寸,如果控件不在布局管理中就為無效的值)
所以對(duì)于需要根據(jù)窗口大小對(duì)應(yīng)改變的部件我這里就設(shè)置為Expandint。
在部件大小策略的下方還有伸縮因子的設(shè)置,用于設(shè)置窗口部件在伸縮過程中的對(duì)應(yīng)比例,這部分可以自行摸索。
要想實(shí)現(xiàn)隨著窗口自動(dòng)縮放,很重要的一點(diǎn)是需要設(shè)置頂級(jí)布局,對(duì)于一個(gè)窗口來說,只能有一個(gè)布局成為它的頂級(jí)布局,而剛剛的設(shè)置還只是控件之間的布局,因此需要放入窗體布局中進(jìn)行布局。
在沒有控件的地方右擊-布局-在狀體布局中布局,如下圖所示:
接下來把需要布局的布局拖放到窗體布局中,這兒可以在右側(cè)對(duì)象中選擇,然后將控件向上拖入紅框中(發(fā)現(xiàn)這一步不做也可以,直接進(jìn)行下一步,不清楚在窗體布局中布局這項(xiàng)是啥區(qū)別),最后再在窗體沒有控件出右擊-布局-選擇水平或者垂直布局(因?yàn)槲抑耙呀?jīng)是柵格布局了,相當(dāng)于只有一個(gè)整體布局,因此這里選擇哪一個(gè)沒有區(qū)別)下圖是操作前后對(duì)象窗口的對(duì)比。
布局完成后效果如下:
到這兒,窗體就可以自由縮放了,由于我這里是使用label控件顯示圖像,因此窗體大小調(diào)整,圖像會(huì)自動(dòng)調(diào)整。
總結(jié):一開始繞彎主要在兩個(gè)地方,一個(gè)是控件的SizePolicy屬性設(shè)置,二是一定要設(shè)置頂級(jí)布局。
最終實(shí)現(xiàn)布局成品,最小大小是這個(gè)樣子
點(diǎn)擊右上角方法按鈕后
總結(jié)
以上是生活随笔為你收集整理的QT窗体控件自适应大小的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab中typecast函数由in
- 下一篇: QT 使用全局变量的方法