本文由 沈慶陽 所有,轉(zhuǎn)載請(qǐng)與作者取得聯(lián)系!
前言
在前面幾節(jié)的學(xué)習(xí)中醋安,我們對(duì)PyQt的基本使用召夹、Qt Designer與Python編碼的工作流程有了基本的學(xué)習(xí)宝当。同時(shí)也掌握了Qt Designer中的布局方式和使用Python代碼來實(shí)現(xiàn)布局审胚。
讓我們?cè)谙旅娴臅r(shí)間里匈勋,通過Qt Designer來設(shè)計(jì)一個(gè)計(jì)算整數(shù)的計(jì)算器吧。
使用網(wǎng)格布局(Grid Layout)
首先分析我們的整數(shù)計(jì)算器需要的一些按鈕:
數(shù)字鍵:0-9共10個(gè)膳叨。
操作符:+ - * / = CE共6個(gè)
當(dāng)我們?cè)赒t Designer的主窗口中創(chuàng)建上述16個(gè)按鈕之后洽洁,按照4行4列的順序進(jìn)行擺放。
并且修改按鈕的屬性中的objectName為相對(duì)于的名稱菲嘴。如數(shù)字0的objectName設(shè)置為Num_0饿自,操作符+的objectName設(shè)置為OP_plus。對(duì)于按鈕的顯示名稱的修改龄坪,在主窗口中雙擊相應(yīng)按鈕則可以快速修改昭雌。
由于計(jì)算器中的按鈕是正方形的(我們通常會(huì)選擇正方形),而且不想讓這些按鈕根據(jù)窗口的大小進(jìn)行變化健田,通過全選16個(gè)按鈕(在主窗口中使用鼠標(biāo)左鍵拖出選擇框烛卧,選中16個(gè)按鈕)在右側(cè)找到mininumSize和maximumSize屬性。點(diǎn)擊其左面的箭頭符號(hào)展開選項(xiàng)抄课,將其寬和高固定為60唱星。這樣就不會(huì)因?yàn)榭s放窗口而造成按鈕的大小變化了雳旅。
在對(duì)所有按鈕完成相應(yīng)操作之后跟磨,我們選中16個(gè)按鈕,點(diǎn)擊右鍵攒盈,使用網(wǎng)格布局來實(shí)現(xiàn)布局抵拘。
使用Spacer增加空白間隔
我們?cè)谟?jì)算器上面新建一個(gè)Line Edit用來顯示輸入結(jié)果與計(jì)算結(jié)果。
通過在空白地方右鍵型豁,對(duì)主窗口使用Vertical Lay Out僵蛛。
此時(shí)尚蝌,我們實(shí)現(xiàn)了一個(gè)計(jì)算器的布局。但顯示框與下面的鍵盤舉例太過近了充尉。這時(shí)我們便需要使用左側(cè)工具箱內(nèi)的Spacer控件飘言。
Spacer顧名思義,分隔器驼侠∽撕瑁可以通過以占位的形式來將布局中的不同控件分開部分舉例。
此時(shí)倒源,我們拖動(dòng)一個(gè)Vertical Spacer到Line Edit與下面的鍵盤之間苛预。同樣,Horizontal Spacer也可以用來水平地分離控件之間的距離笋熬。
雖然Spacer在我們的Qt Designer編輯器中是以藍(lán)色的類似彈簧的外觀存在的,但是在真正的窗體中胳螟,Spacer是隱形的昔馋。
但這時(shí)的Spacer大小和Line Edit的大小都不是我想要的,而且也無法通過鼠標(biāo)來拖動(dòng)糖耸。如果想要改變這些绒极,則需要進(jìn)一步了解這些控件的一些屬性。
sizePolicy 尺寸策略
在Qt Designer中蔬捷,控件的尺寸是可以變化的垄提。每個(gè)控件都擁有sizeHint和minisizeHint兩個(gè)尺寸。其一周拐,sizeHint即尺寸提示铡俐;其二,minisizeHint則是最小尺寸妥粟。尺寸提示也是控件的期望尺寸审丘,最小尺寸即窗口可以被壓縮到的最小的尺寸。sizePolicy與sizeHint和minisizeHint息息相關(guān)勾给。
對(duì)于布局管理器中的布局無法滿足我們的要求的時(shí)候滩报,sizePolicy屬性便派上了用場。
sizePolicy可以實(shí)現(xiàn)控件的微調(diào)播急。sizePolicy中共有如下幾種水平和垂直策略脓钾。
策略 | 中文 | 含義 |
---|---|---|
Fixed | 固定 | 窗口控件具有sizeHint提示的尺寸且尺寸不變 |
Minimum | 最小 | 窗口控件的sizeHint提示的尺寸即最小尺寸,窗口控件不能比這個(gè)值小桩警,但是可以變大 |
Maximum | 最大 | 窗口控件的sizeHint提示的尺寸即最大尺寸可训,窗口控件不能比這個(gè)值大,但是可以壓縮到minisizeHint的尺寸 |
Preferred | 期望 | 窗口控件的sizeHint提示的尺寸是期望的尺寸,可以壓縮到minisizeHint尺寸握截,也可以比sizeHint尺寸更大 |
MinimumExpanding | 最小擴(kuò)展 | 窗口控件的sizeHint提示的尺寸是最小尺寸飞崖,不能縮得比這個(gè)尺寸小,但是這個(gè)控件期望可以比這個(gè)尺寸大 |
Expanding | 擴(kuò)展 | 窗口控件可以縮小到minisizeHint的尺寸谨胞,也可以比sizeHint的的尺寸大固歪,但期望是更大 |
Ignored | 忽略 | 無視窗口控件的sizeHint與minisizeHint,按照默認(rèn)來設(shè)置 |
在sizePolicy的Horizontal Policy和Vertical Policy下面還有Horizontal Stretch和Vertical Stretch兩個(gè)屬性胯努。
讓我們找到Spacer昼牛,并修改其屬性的Height為10。
并將其sizeType修改為Fixed固定康聂。此時(shí)贰健,觀察左面的計(jì)算器的主界面顯示欄Line Edit與下面的鍵盤之間的間距變小了。
在這一節(jié)中恬汁,我們使用Qt Designer設(shè)計(jì)了一個(gè)計(jì)算器的界面伶椿,并且講解了一些布局的方法。在下一節(jié)中氓侧,我們將會(huì)講解如何添加一些高級(jí)的Qt組件來實(shí)現(xiàn)特定的功能脊另。
覺得寫的不錯(cuò)的朋友可以點(diǎn)一個(gè) 喜歡? ~
謝謝你的支持!·