前言
VS版本:VS2019
QT版本:Qt5.12.3(msvc2017_64)
為了適配不同尺寸的顯示屏,軟件窗口需要調(diào)整大小,窗口內(nèi)的控件尺寸也要適配窗口的大小。
本例重點講述如何設(shè)置可調(diào)整尺寸的窗口及控件,實現(xiàn)窗口最大化和尺寸調(diào)節(jié)。
本例使用相對簡單的按鍵和文本框來做示例,其他控件均可通過這個方法進行設(shè)置。
PS:本方法不需要加入任何代碼。
〇、姊妹篇
或許你對這篇也感興趣:
VS+Qt設(shè)置窗口尺寸(一):固定窗口大小,無法最大化,調(diào)節(jié)尺寸
一、效果展示
控件無法自動調(diào)整大小 VS 控件自適應(yīng)窗口布局??????
此時控件可以隨窗口的大小自適應(yīng)調(diào)節(jié)大小。
二、窗口布局
- 使用柵格布局,注意柵格布局要作用在窗口上,而不是控件上
在Qt Creater中,單擊窗口空白的地方,然后選擇柵格布局,這里一定要注意,不要作用在控件上。比較一下二者的區(qū)別:
- 作用在窗口上,控件雖然分散,但會有明顯的對齊:
- 作用在控件上,控件會有個整體的布局(紅色和綠色的框線):
作用在控件上的布局能夠快速完成控件布局及對齊,但實現(xiàn)自適應(yīng)窗口大小,需要進行更加復(fù)雜的操作,不建議使用。
三、設(shè)置控件尺寸屬性
想要控件自適應(yīng)窗口布局,最為重要的一點就是設(shè)置控件的大小策略,其次是設(shè)置最大和最小尺寸。文章來源:http://www.zghlxwxcb.cn/news/detail-421970.html
結(jié)合控件的SizePolicy屬性,來控制布局管理中的控件的尺寸自適應(yīng)方式。
控件的sizePolicy說明控件在布局管理中的縮放方式。下面列舉了一些最長用的值:
a. Fixed:控件不能放大或者縮小,控件的大小就是它的sizeHint。
b. Minimum:控件的sizeHint為控件的最小尺寸??丶荒苄∮谶@個sizeHint,但是可以放大。
c. Maximum:控件的sizeHint為控件的最大尺寸,控件不能放大,但是可以縮小到它的最小的允許尺寸。
d. Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者縮小
e. Expanding:控件可以自行增大或者縮小
注:sizeHint(布局管理中的控件默認尺寸,如果控件不在布局管理中就為無效的值)文章來源地址http://www.zghlxwxcb.cn/news/detail-421970.html
- 將需要自適應(yīng)變化的控件SizePolicy根據(jù)需求設(shè)置水平策略和垂直策略;
水平策略設(shè)置為Expanding,那么窗口橫向尺寸變化,則會有水平方向的拉伸與縮??;垂直策略設(shè)置為Expanding,那么窗口縱向尺寸變化,則會有垂直方向的拉伸與縮?。蝗绻麅蓚€策略全部設(shè)置Expanding,那么該控件就可以自適應(yīng)窗口尺寸變化。 - 可以根據(jù)布局需要,添加“彈簧”控件,使布局變化更加符合用戶使用習(xí)慣;
- 根據(jù)布局需要,對控件的最大最小尺寸進行設(shè)置,使控件在合理的尺寸內(nèi)變化。
我們把PushButton1的最大寬度設(shè)置為100,PushButton2和PushButton3的最大寬度設(shè)置為200,再來看一下效果:
可以看出,通過設(shè)置控件的最大最小尺寸,可以將展示重要信息的控件進行最大化的展示,對不重要的控件尺寸進行限制。
如果在實際操作時,發(fā)現(xiàn)將控件SizePolicy屬性設(shè)置為Expanding后,控件變得離奇的大,甚至擠壓了其他重要的控件,也可以通過設(shè)置最小尺寸和最大尺寸來調(diào)整,全部設(shè)置完后,控件就會在一個合適的尺寸啦。
四、一些經(jīng)驗
- 如果控件中存在GroupBox,可以將GroupBox當(dāng)成正??丶硖幚恚蝗绻鸊roupBox里面的控件也要實現(xiàn)自適應(yīng)尺寸變化,只要按照上面的步驟,在GroupBox里面再操作一次即可。將GroupBox視為一個單獨的小窗口;
- 如果你善于觀察,可能發(fā)現(xiàn)示例中的界面其實發(fā)生了變化。原因是因為柵格布局會自動為你劃分區(qū)域,個別控件會劃分到一起,這樣就可能導(dǎo)致自適應(yīng)失效。所以要靈活一點,調(diào)整一下控件布局,我為了方便演示,調(diào)整了或直接刪除了控件布局o(h_h)o
五、工程源碼
- github 免費下載
- CSDN 免積分下載
到了這里,關(guān)于VS+Qt設(shè)置窗口尺寸(二):窗體控件自適應(yīng)窗口布局,自動調(diào)整大小的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!