Pyqt5 實現窗口縮放,控件在窗口內自動伸縮的操作

在Qtdesigner中新建一個主界面如下所示:

ctrl+R 預覽

從預覽圖中可以看出這時的界面不支持伸縮,拖動過小的話會導致部分界面遮住不可見,這時我們就要用到佈局選項,首先對上面的按鈕和文本框佈局按住ctrl選中要佈局的控件

根據實際情況選中工具欄上的佈局按鈕,我這裡是網格佈局

選中後如下所示

然後在對底下的listwidget和tablewidget進行水平佈局,佈局完成後如下所示,其中有個細節是還要對Qgroupbox在進行一次水平或垂直佈局,具體是選中Qgroupbox控件然後點擊水平佈局按鈕,這時Qgroupbox內部的所有控件均按照水平進行佈局

類似的對最下面的button進行垂直佈局

最重要的一步來瞭,就是點擊主界面的空白處,然後點擊網格佈局(根據自己的需要)

這時候在ctrl R預覽在用右下角進行縮放可以看到是可以控件之間能夠自由縮放,適配界面的大小:

現在基本實現縮放,但是界面的美觀程度不夠好,比如下面的兩個按鈕本應該在右下角現在確沾滿瞭橫向的整個界面,因此需要進一步美化,我們要通過添加label控件來進行留白,設計過程中先將label控件輸入文字如下圖所示:

是不是感覺比之前的好看瞭,然後我們把label的內容換位空格就好瞭

這時候界面就留有空白,比較好看!

還有一種輔助佈局的方法是在屬性裡面,點擊不同的佈局會有不同的屬性展示

比方說網格佈局的時候可以選擇列之間的比例如圖中的layoutstretch 1,2,3 代表三列寬度比列為1:2:3

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: