PyQt Qt Designer工具的布局管理詳解
前言
這節(jié)課很重要。。界面整潔美觀與否就看布局了。。這里講布局方法,至于設(shè)計(jì)的天賦與最終界面的美感那就看造化了。。
本文主要講述Qt Designer工具實(shí)現(xiàn)界面控件布局管理,就是排列組合控件。包括水平布局、垂直布局、網(wǎng)格布局、表單布局。至于絕對(duì)布局太復(fù)雜。。短期內(nèi)hold不住
布局管理打開(kāi)方法
方法一:Qt Designer -> Form菜單欄
方法二:右鍵單擊主窗口 -> Lay out
四種布局管理介紹
(1)水平布局 Lay Out Horizontally:被選中的控件在水平方向上從左到右排列。雜亂無(wú)章的四個(gè)控件水平布局后效果如下:
(2)垂直布局 Lay Out Vertically:被選中的控件在垂直方向上依次排列。雜亂無(wú)章的四個(gè)控件垂直排列后效果如下:
(3)表單布局Lay Out in a Form:控件以2列的形式布局在表單中。左列包含標(biāo)簽(label),右列包含輸入控件。 用戶名和密碼相關(guān)的四個(gè)控件組合表單布局。
(4)網(wǎng)格布局 Lay Out in a Grid:網(wǎng)格布局是將窗口分隔成行和列的網(wǎng)格來(lái)進(jìn)行排列。被選中組合的控件以網(wǎng)格的形式排列。參考如下。。好像也不美觀。
嵌套布局
界面控件類型簡(jiǎn)單可以考慮采用上述四種布局方式進(jìn)行單一布局。但是控件類型多樣化的話就要考慮布局的嵌套了。就是分析控件的特點(diǎn),采用不同布局方式組合控件。
如下主窗口中用戶名+密碼的標(biāo)簽+單行輸入框控件組合使用表單布局,然后與登錄+退出控件使用垂直布局,最后與顯示文本框采用網(wǎng)格布局。具體效果如下
注意:組合控件使用的布局如果需要打破布局,可以通過(guò)選擇組合的控件,然后單擊菜單Form -> Break Layout方式進(jìn)行打破布局。實(shí)際上使用撤銷也可以。
絕對(duì)布局管理
某些時(shí)候采用布局管理工具完成的界面設(shè)置并不滿足你的要求,可以考慮修改控件geometry屬性相對(duì)坐標(biāo)及長(zhǎng)、框的方式進(jìn)行對(duì)齊。geometry屬性在PyQt中主要用來(lái)設(shè)置控件在窗口中的絕對(duì)坐標(biāo)與控件自身的大小。如下圖所示。對(duì)于包含控件類型及個(gè)數(shù)不多的界面可以考慮采用這種方式。
下面針對(duì)這幾個(gè)控件的對(duì)齊簡(jiǎn)單描述一下。
第一行中"獲取整數(shù)"按鈕與"lineEdit"兩個(gè)控件對(duì)齊:控件Y軸數(shù)值、Height長(zhǎng)度值保持一致。控件間隔通過(guò)計(jì)算獲取。這里兩個(gè)控件間隔為150-80-50=30
第一列"獲取整數(shù)"和"獲取字符串"控件對(duì)齊:保持X軸數(shù)值、Width數(shù)值一致。列間間距為80-31-30=19。這樣"獲取列表選項(xiàng)"控件也以間距19保持即可。
是不是很簡(jiǎn)單?如果覺(jué)得布局管理出來(lái)效果不好,就動(dòng)手嘗試一下這種方法把。。
其他布局管理
1、采用絕對(duì)布局的方式進(jìn)行控件布局。但是這種上手難度比較大,后面在實(shí)踐過(guò)程中遇到有好的方法可以針對(duì)Qt界面布局管理后的效果進(jìn)行優(yōu)化的再補(bǔ)充介紹。
2、修改控件屬性。通過(guò)修改控件的屬性,比如最小尺寸、最大尺寸、長(zhǎng)、寬、字體等等。比如我想針對(duì)小工具的需求我會(huì)經(jīng)常使用固定最小尺寸、最大尺寸保持一致的方式,使主窗口及控件不受拉伸影響。
小結(jié)
本文針對(duì)Qt Designer布局管理中的水平布局、垂直布局、網(wǎng)格布局以及表單布局的最最基本的使用方法和布局效果進(jìn)行了基本介紹。內(nèi)容都很簡(jiǎn)單,看完也很容易自己動(dòng)手實(shí)踐一下。當(dāng)然還有很多其他輔助的方式(比如添加水平線、垂直線等)可以幫助完成界面更合理的布局,這個(gè)需要后面再進(jìn)行探索。。有新的理解或者內(nèi)容后續(xù)再更新本文。期望自己可以布局一個(gè)還能過(guò)的去的界面。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)點(diǎn)陣字體讀取與轉(zhuǎn)換的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)點(diǎn)陣字體讀取與轉(zhuǎn)換的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01對(duì)python pandas中 inplace 參數(shù)的理解
這篇文章主要介紹了對(duì)python pandas中 inplace 參數(shù)的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python?SQLAlchemy與數(shù)據(jù)庫(kù)交互操作完整指南
SQLAlchemy 是一個(gè)強(qiáng)大的 Python 庫(kù),用于數(shù)據(jù)庫(kù)操作,無(wú)論是簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)還是復(fù)雜的數(shù)據(jù)管理,SQLAlchemy 都提供了多種方法來(lái)處理數(shù)據(jù)庫(kù),本文將全面介紹 SQLAlchemy的基本用法以及各種操作的示例代碼2024-01-01詳解Python對(duì)JSON中的特殊類型進(jìn)行Encoder
這篇文章主要介紹了詳解Python對(duì)JSON中的特殊類型進(jìn)行Encoder,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫(kù))的使用詳解
這篇文章主要介紹了python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫(kù))的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01在Pandas中DataFrame數(shù)據(jù)合并,連接(concat,merge,join)的實(shí)例
今天小編就為大家分享一篇在Pandas中DataFrame數(shù)據(jù)合并,連接(concat,merge,join)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01