本文由 沈慶陽 所有,轉載請與作者取得聯系!
前言
在前面幾節的學習中,我們對PyQt的基本使用、Qt Designer與Python編碼的工作流程有了基本的學習。同時也掌握了Qt Designer中的布局方式和使用Python代碼來實現布局。
讓我們在下面的時間里,通過Qt Designer來設計一個計算整數的計算器吧。
使用網格布局(Grid Layout)
首先分析我們的整數計算器需要的一些按鈕:
數字鍵:0-9共10個。
操作符:+ - * / = CE共6個
當我們在Qt Designer的主窗口中創建上述16個按鈕之后,按照4行4列的順序進行擺放。

並且修改按鈕的屬性中的objectName為相對於的名稱。如數字0的objectName設置為Num_0,操作符+的objectName設置為OP_plus。對於按鈕的顯示名稱的修改,在主窗口中雙擊相應按鈕則可以快速修改。
由於計算器中的按鈕是正方形的(我們通常會選擇正方形),而且不想讓這些按鈕根據窗口的大小進行變化,通過全選16個按鈕(在主窗口中使用鼠標左鍵拖出選擇框,選中16個按鈕)在右側找到mininumSize和maximumSize屬性。點擊其左面的箭頭符號展開選項,將其寬和高固定為60。這樣就不會因為縮放窗口而造成按鈕的大小變化了。

在對所有按鈕完成相應操作之后,我們選中16個按鈕,點擊右鍵,使用網格布局來實現布局。

使用Spacer增加空白間隔
我們在計算器上面新建一個Line Edit用來顯示輸入結果與計算結果。

通過在空白地方右鍵,對主窗口使用Vertical Lay Out。

此時,我們實現了一個計算器的布局。但顯示框與下面的鍵盤舉例太過近了。這時我們便需要使用左側工具箱內的Spacer控件。

Spacer顧名思義,分隔器。可以通過以占位的形式來將布局中的不同控件分開部分舉例。
此時,我們拖動一個Vertical Spacer到Line Edit與下面的鍵盤之間。同樣,Horizontal Spacer也可以用來水平地分離控件之間的距離。

雖然Spacer在我們的Qt Designer編輯器中是以藍色的類似彈簧的外觀存在的,但是在真正的窗體中,Spacer是隱形的。

但這時的Spacer大小和Line Edit的大小都不是我想要的,而且也無法通過鼠標來拖動。如果想要改變這些,則需要進一步了解這些控件的一些屬性。
sizePolicy 尺寸策略
在Qt Designer中,控件的尺寸是可以變化的。每個控件都擁有sizeHint和minisizeHint兩個尺寸。其一,sizeHint即尺寸提示;其二,minisizeHint則是最小尺寸。尺寸提示也是控件的期望尺寸,最小尺寸即窗口可以被壓縮到的最小的尺寸。sizePolicy與sizeHint和minisizeHint息息相關。
對於布局管理器中的布局無法滿足我們的要求的時候,sizePolicy屬性便派上了用場。

sizePolicy可以實現控件的微調。sizePolicy中共有如下幾種水平和垂直策略。

策略 | 中文 | 含義 |
---|---|---|
Fixed | 固定 | 窗口控件具有sizeHint提示的尺寸且尺寸不變 |
Minimum | 最小 | 窗口控件的sizeHint提示的尺寸即最小尺寸,窗口控件不能比這個值小,但是可以變大 |
Maximum | 最大 | 窗口控件的sizeHint提示的尺寸即最大尺寸,窗口控件不能比這個值大,但是可以壓縮到minisizeHint的尺寸 |
Preferred | 期望 | 窗口控件的sizeHint提示的尺寸是期望的尺寸,可以壓縮到minisizeHint尺寸,也可以比sizeHint尺寸更大 |
MinimumExpanding | 最小擴展 | 窗口控件的sizeHint提示的尺寸是最小尺寸,不能縮得比這個尺寸小,但是這個控件期望可以比這個尺寸大 |
Expanding | 擴展 | 窗口控件可以縮小到minisizeHint的尺寸,也可以比sizeHint的的尺寸大,但期望是更大 |
Ignored | 忽略 | 無視窗口控件的sizeHint與minisizeHint,按照默認來設置 |
在sizePolicy的Horizontal Policy和Vertical Policy下面還有Horizontal Stretch和Vertical Stretch兩個屬性。
讓我們找到Spacer,並修改其屬性的Height為10。

並將其sizeType修改為Fixed固定。此時,觀察左面的計算器的主界面顯示欄Line Edit與下面的鍵盤之間的間距變小了。

在這一節中,我們使用Qt Designer設計了一個計算器的界面,並且講解了一些布局的方法。在下一節中,我們將會講解如何添加一些高級的Qt組件來實現特定的功能。
覺得寫的不錯的朋友可以點一個 喜歡♥ ~
作者:養薛定諤的貓
鏈接:https://www.jianshu.com/p/61cb5ed4548f
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。