日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5)

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、布局管理器進行布局

2、容器控件進行布局

3、geometry屬性:控件絕對布局

4、sizePolicy屬性:微調優化控件布局


Qt Designer提供4種窗口布局方式,分別如下:

  • Vertical Layout(垂直布局),控件默認按照從上到下的順序進行縱向添加;
  • Horizontal Layout(水平布局),控件默認按照從左到右的順序進行橫向添加;
  • Grid Layout(柵格布局),將窗口控件放入一個網格之中,然后將它們合理地劃分成若干行(row)和列(column),并把其中的每個窗口控件放置在合適的單元(cell)中,這里的單元即是指由行和列交叉所劃分出來的空間;
  • Form Layout(表單布局),控件以兩列的形式布局在表單中,其中左列包含標簽,右列包含輸入控件。

它們位于Qt Designer主窗口左側區域的Widget Box(工具箱)里的Layouts(布局)欄中,如下圖所示:

通常進行布局有兩種方式:一種是通過布局管理器進行布局,另一種是通過容器控件進行布局。

1、布局管理器進行布局

以垂直布局為例,打開Qt Designer,新建一個QWidget控件,然后在其中放入兩個按鈕(PushButton)子控件。

選中這兩個控件,單擊鼠標右鍵,在彈出的快捷菜單中選擇"布局"的子菜單就可以指定該控件的布局方式了,此處選擇“垂直布局”,如下圖所示:

2、容器控件進行布局

所謂容器控件,就是指能夠容納子控件的控件。使用容器控件,目的是將容器控件中的控件歸為一類,以有別于其他控件。當然,容器控件也可以對其子控件進行布局,只不過沒有布局管理器常用。使用容器控件最大的作用是:美觀和方便管理,例如將10個按鈕(PushButton)子控件放在同一個容器控件中,拖動容器控件即可同時移動10個按鈕(PushButton)子控件。

Qt Designer主窗口左側區域的Widget Box(工具箱)里的Containers(容器)欄中,如下圖所示:

具體使用可參見官網說明,這里不再贅述:Using Containers in Qt Designer | Qt Designer Manual

從左側容器(Containers)導航欄拖入一個Frame控件,Frame控件放置一些常用的表單、按鈕等控件,在Frame控件中放入三個Button控件,并對其進行重命名,還是以垂直布局,如下圖所示:

此時拖動Frame控件即可便捷控制三個Button控件,并且在右側對象查看器中可見,三個Button控件對象是在Frame控件子級,當創建的對象較多時就非常方便管理了。

3、geometry屬性:控件絕對布局

最后再聊聊絕對布局。

絕對布局方法非常簡單,在Qt Designer主窗口右側區域屬性欄目設置相關控件的geometry屬性即可。geometry屬性在PyQt中主要用來設置控件在窗口中的絕對坐標與控件自身的大小。例如,以下Button控件的geometry屬性,如下圖所示:

參數說明如下所示:

  • X:110,按鈕控件左上角,距離主窗口左側為110px;
  • Y:170,按鈕控件左上角,距離主窗口上側為170px;
  • 寬度:93,按鈕控件寬度為93px;
  • 高度:28,按鈕控件高度為28px。

示意圖如下所示:

可以隨意更改這些屬性值來查看控件在窗口中的位置變化,也可以通過更改控件在窗口中的位置及其大小來查看屬性值的變化,以此更深刻地理解屬性的含義。

4、sizePolicy屬性:微調優化控件布局

sizePolicy屬性的作用是:若窗口控件在布局管理器中的布局不能滿足我們的需求,那么就可以設置該窗口控件的sizePolicy屬性來實現布局的微調。

介紹sizePolicy屬性之前,需要先講講sizeHint和minisizeHint屬性。每個窗口控件都有屬于自己的兩個尺寸:一個是sizeHint屬性(尺寸提示),它是窗口控件的期望尺寸;另一個是minimumSize屬性(最小尺寸),它是窗口控件壓縮時所能夠被壓縮到的最小尺寸。

sizePolicy屬性也是每個窗口控件所特有的屬性,不同的窗口控件的sizePolicy可能不同。例如,以下Button控件的默認sizePolicy屬性,如下圖所示:

水平策略和垂直策略的參數解釋如下所示:

  • Fixed:窗口控件具有其sizeHint所提示的尺寸且尺寸不會再改變;
  • Minimum:窗口控件的sizeHint所提示的尺寸就是它的最小尺寸;該窗口控件不能被壓縮得比這個值小,但可以變得更大;
  • Maximum:窗口控件的sizeHint所提示的尺寸就是它的最大尺寸;該窗口控件不能變得比這個值大,但它可以被壓縮到minisizeHint給定的尺寸大小;
  • Preferred:窗口控件的sizeHint所提示的尺寸就是它的期望尺寸;該窗口控件可以縮小到minisizeHint所提示的尺寸,也可以變得比sizeHint所提示的尺寸還要大;
  • Expanding :窗口控件可以縮小到minisizeHint所提示的尺寸,也可以變得比sizeHint所提示的尺寸大,但它希望能夠變得更大;
  • MinimumExpanding:窗口控件的sizeHint所提示的尺寸就是它的最小尺寸;該窗口控件不能被壓縮得比這個值還小,但它希望能夠變得更大;
  • lgnored:無視窗口控件的sizeHint和minisizeHint所提示的尺寸,按照默認來設置。

學了本篇文章,各位朋友基本可實現布局操作,也可繼續學習強化篇文章,繼續加深理解~

Python Qt GUI設計:窗口布局管理方法【強化篇】(基礎篇—6)


參考鏈接:在 Qt Designer 中使用布局

Python-PyQt5開發學習筆記(二):Layout(布局)?

總結

以上是生活随笔為你收集整理的Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。