天天看點

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

目錄

1、界面元件

1.1、布局元件(Layouts)

1.2、分隔元件(Spacers)

1.3、按鈕元件(Buttons)

1.4、表項視圖(Item Views)

1.5、表項元件(Item Widgets)

1.6、容器元件(Containers)

1.7、輸入元件(Input Widgets)

1.8、顯示元件(Display Widgets)

2、元件屬性

Qt Designer中有很多UI界面元件,每種元件相對應有可設定的屬性,本篇博文來讓我們簡單了解一下吧~

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

在Qt Designer中,提供了八大類界面可視化元件分别為:布局元件(Layouts)、分隔元件(Spacers)、按鈕元件(Buttons)、表項視圖(Item Views)、表項元件(Item Widgets)、容器元件(Containers)、輸入元件(Input Widgets)、顯示元件(Display Widgets),在Qt Designer的應用界面設計時,可以将各種功能的元件拖拽到視窗上進行應用的可視化界面設計,而每種元件又可以指定不同的屬性。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

布局元件包括:Vertical Layout(水準布局)、Horizontal Layout(垂直布局)、Grid Layout(網格布局)、Form Layout(表單布局)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

分隔元件包括:Horizontal Spacer(水準分隔)、Vertical  Spacer(垂直分隔)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

按鈕元件包括:Push Button(按鈕)、Tool Button(工具按鈕)、Radio Button(單選框)、Check Box(複選框)、Command Link Button(指令連結按鈕)、Dialog Button Box(選擇按鈕)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

表項視圖包括:List View(清單視圖)、Tree View(樹狀視圖)、Table View(表格視圖)、Column View(清單視圖)、Undo View(撤銷視圖)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

表項元件包括:List Widget(清單表項)、Tree Widget(樹狀表項)、Table Widget(表格表項)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

容器元件包括:Group Box(組合框,可以在内部添加内容,并修改标題頭)、Scroll Area(帶滑動條的框)、Tool Box(抽屜式框)、Tab Widget(标簽式框)、Stacked Widget(棧式,需要信号啟動)、Frame(帶邊框的布局)、Widget(不帶邊框的布局)、MDI Area(分欄顯示)、Dock Widget(浮動視窗)、QAxWidget(隻可以在Windows環境使用)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

輸入元件包括:Combo Box(下拉選框)、Font Combo Box(下拉字型框)、Line Edit(行編輯區)、Text Edit(文本編輯區,隻可以檢視文字、圖檔和動畫)、Plain Text Edit(文字編輯框)、Spin Box(調整數字框)、Double Spin Box(浮點型數字調整框)、Time Edit(時間)、Data Edit(日期)、Data/Time Edit(時間和日期)、Dial(羅盤)、Horizontal Scroll Bar(水準滾動條)、Vertical Scroll Bar(垂直滾動條)、Horizontal Slider(水準滑動條)、Vertical Slider(垂直滑動條)、Key Sequence Edit(快捷方式)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

顯示元件包括:Label(标簽元件,可檢視文本、網頁、圖檔和動畫等)、Text Browser(文本框)、Graphics View(繪圖工具)、Calendar Widget(月曆)、LCD Number(LCD 數位管)、Progress Bar(進度條)、Horizontal Line(水準分割線)、Vertical Line(垂直分割線)、OpenGL Widget(OpenGL(Open Graphics Library,開放圖形庫)圖形渲染的部件,可以在PyQt和Qt的應用中顯示圖形(包括2D和3D圖形))、QQuickWidget(加載QML檔案)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

第二部分有較多内容引用、學習該文章:Designer元件屬性編輯界面中QWidget類相關屬性詳解,很多詳細知識點可以參照該博文。

在Qt Designer中的每種元件屬性編輯部分可以進行設定,如下圖所示:

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

每種元件的屬性會有所不同之處,這裡以QWidget視窗為例,簡單聊聊其屬性,如下所示:

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

讓我們一起看看吧~

可以看到,最頂層的節點為元件對應的父類(Form),從上往下排列的節點,基本按照父類在上,子類在下的方式排列,很好的展現了類的繼承關系以及相關屬性是哪個類提供的。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

enabled屬性

enabled屬性用于表示元件是否可用,一個元件的部件可以接收和處理滑鼠和鍵盤事件,當元件不可用時則無法接收和處理滑鼠和鍵盤事件。

enabled屬性預設值為True,有些元件在被禁用時會以不同的方式顯示自己。例如,按鈕可能會将其标簽顯示灰色。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

控制元件大小的屬性有:geometry 、sizePolicy、minimumSize、maximumSize、sizeIncrement和baseSize,用于控制元件的初始大小以及動态調整大小的控制。屬性配置界面的geometry定義了元件的初始大小,其他屬性都與元件大小調整時控制元件的大小相關。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

geometry屬性

geometry屬性儲存元件相對于其父級對象的位置和大小,Qt實際上是以一個長方形來表示元件的位置和大小的,包括左上角的坐标位置、長和寬。

sizePolicy屬性

sizePolicy屬性用于說明元件在布局管理中的縮放方式,當部件沒有在布局管理器中時,該設定無效。

sizePolicy屬性由四個值組成,分别是水準政策、垂直政策、水準伸展和垂直伸展。

實踐可參見:Python-PyQt5開發學習筆記(二):Layout(布局)

minimumSize屬性

mimimumSize屬性表示元件能被縮小到的最小尺寸,機關為像素,縮小到該尺寸後不能再進一步縮小了。如果元件在布局管理器中,且布局管理器也設定了最小尺寸,則部件本身的最小尺寸以部件的mimimumSize為準,布局管理器設定的不起作用。

maximumSize屬性

maximumSize屬性表示元件能被放大到的最大尺寸,放大到該尺寸後不能再進一步放大了。元件的預設最大值為:(16777215,16777215)。

sizeIncrement屬性

sizeIncrement屬性表示元件調整大小時的每次變化的增量大小(機關:像素)的基數,實際調整大小計算公式如下:

width = baseSize().width() + i * sizeIncrement().width()

height = baseSize().height() + j * sizeIncrement().height()

其中i,j為非負整數。

baseSize屬性

baseSize屬性是元件的基礎大小(機關:像素),如果元件設定了sizeIncrement,該屬性用于在調整元件尺寸時計算元件應該調整到的合适值,這個屬性預設值是(0,0)。

palette屬性

palette屬性是調色闆作用,管理着控件和窗體的所有顔色,可用于管理控件的外觀顯示以及設定組成。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

font屬性

font屬性中可以設定元件的字型屬性,包括字型的字型簇(Family)、大小(Size)、是否粗體(Bold)、是否斜體(Italic)、是否帶下劃線(Underline)、是否帶删除線(Strikeout)等。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

cursor屬性

cursor屬性儲存元件的滑鼠光标形狀,當滑鼠位于該元件上時就會呈現該屬性設定的光标形狀,可取值的範圍及含義如下圖所示:

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

mouseTracking屬性

mouseTracking屬性用于儲存是否啟用滑鼠跟蹤,預設情況是不啟用的。不啟用的情況下,對應部件隻接收在滑鼠移動同時至少一個滑鼠按鍵按下時的滑鼠移動事件,啟用滑鼠跟蹤的情況下,任何滑鼠移動事件部件都會接收。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

tabletTracking屬性

tabletTracking屬性儲存是否啟用元件的平闆跟蹤,預設是不起用的。不啟用平闆跟蹤的情況下,部件僅接收觸控筆與平闆接觸或至少有個觸控筆按鍵按下時的觸控筆移動事件。

如果元件啟用了平闆跟蹤功能,部件能接收觸控筆靠近但未真正接觸平闆時的觸控筆移動事件,這可以用于監視操作位置以及部件的輔助操作功能(如旋轉和傾斜),并為圖形界面提供這些操作的資訊接口。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

focusPolicy屬性

focusPolicy屬性可以設定元件的焦點政策。設定參數說明如下所示:

NoFocus:元件不支援焦點;

TabFocus:Tab鍵擷取焦點;

ClickFocus:滑鼠按下擷取焦點;

StrongFocus:Tab鍵和滑鼠按下擷取焦點;

WheelFocus:滑鼠輪滾動擷取焦點。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

contextMenuPolicy屬性

contextMenuPolicy屬性是元件的快捷菜單政策,快捷菜單通過在部件上點選滑鼠右鍵觸發。設定參數說明如下所示:

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

來源:CSDN部落客老猿Python

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

acceptDrops屬性

acceptDrops屬性表示目前元件是否接受滑鼠拖放事件,滑鼠拖放應該是與滑鼠拖拽結合在一起的,在Qt Designer中可以通過屬性acceptDrops設定部件是否接受滑鼠拖放事件。如果部件接受拖放,則在滑鼠拖放時,拖放事件會發送給滑鼠目前光标下接受拖放的第一個部件。

如果元件設定了acceptDrops屬性為True,則就是通知系統該元件可接受滑鼠拖放事件。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

windowTitel屬性

windowTitle屬性是對視窗标題進行設定。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

windowIcon屬性

windowIcon屬性是對視窗圖示進行設定。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

windowOpacity屬性

windowOpacity屬性為浮點數,表示元件透明度,為1完全不透明,為0完全透明,預設是1。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

toolTip屬性

toolTip屬性設定元件的toolTip提示資訊,toolTip提示資訊在滑鼠放到控件上會浮動出一個小框顯示提示資訊。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

toolTipDuration屬性

toolTipDuration屬性控制toolTip提示資訊顯示的時長,機關是毫秒,如果設定為-1,則顯示時長根據toolTip内容的長度來計算。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

statusTip屬性

statusTip屬性儲存statusTip提示資訊,statusTip提示資訊在滑鼠放到控件上時在視窗的狀态欄顯示提示資訊,如果視窗無狀态欄則不顯示。statusTip屬性預設值為空字元串。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

whatsThis屬性

whatsThis屬性儲存元件的幫助資訊。whatsThis的幫助資訊一般在元件獲得焦點後按Shift+F1彈出顯示,如果這個快捷鍵被别的功能占用,則whatsThis的幫助資訊可能無法展示。有些對話窗提供一個帶問号的按鈕可以點選顯示whatsThis的幫助資訊。whatsThis屬性預設值為空字元串。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

accessibleName屬性

accessibleName屬性是輔助閱讀中顯示的元件的名稱,用于殘障人士輔助閱讀。對于大多數小部件,無需設定此屬性,因為Qt會調用部件相關屬性顯示,如按鈕将顯示按鈕的文本,但當小部件不提供任何文本時,設定此屬性很重要。例如,隻包含圖示的按鈕需要将此屬性設定為與螢幕閱讀器一起使用。此屬性預設為空。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

accessibleDescription屬性

accessibleDescription屬性儲存輔助技術所看到的部件描述,用于殘障人士輔助閱讀。是對accessibleName屬性的補充說明。此屬性預設為空。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

layoutDirection屬性

layoutDirection屬性儲存的是元件的布局方向,有三個取值:

LeftToRight:從左到右布局;

RightToLeft:從右到左布局;

LayoutDirectionAuto:自動布局。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

autoFillBackground屬性

autoFillBackground屬性可以确認元件背景是否自動填充。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

styleSheet屬性

styleSheet屬性是定義元件外觀的屬性樣式表,在Qt中styleSheet樣式表是類似于html的css樣式一樣的方法,隻是專門為Qt中的部件開發的。styleSheet的定義文法也是類似CSS,并且是跨平台支援的。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

locale屬性

locale屬性用于設定語言環境,包括語言和國家。如果一個部件沒有設定語言環境,則使用父對象的語言環境或者預設語言環境(如果部件是頂層部件)。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

windowFilePath屬性

windowFilePath屬性僅對視窗對象有效,用于關聯一個視窗和對應的檔案及路徑。

當視窗沒有設定标題屬性的情況下,則視窗标題展示展示windowFilePath對應的檔案名的資訊(路徑資訊不展示),如果二者都設定,則優先使用視窗标題屬性的設定作為标題。

該屬性預設為空,這個功能在視窗打開檔案進行操作時可以使用來标記打開的檔案。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

inputMethodHints屬性

inputMethodHints屬性隻對輸入元件有效,輸入法使用它來檢索有關輸入法應如何操作的提示,例如,如果設定了隻允許輸入數字的标志,則輸入法可能會更改其可視元件,以反映隻能輸入數字。相關取值及含義如下:

ImhNone:沒有提示;

ImhHiddenText:輸入時不顯示輸入字元;

ImhSensitiveData:輸入的文本不會由活動輸入法存儲在任何持續性存儲中;

ImhNoAutoUppercase:輸入法不可在句子結束時自動切換到大寫;

ImhPreferNumbers:數字優先(不是必須);

ImhPreferUppercase:大寫字母優先(不是必須);

ImhPreferLowercase:小寫字母優先(不是必須);

ImhNoPredictiveText:輸入時不使用聯想預測文字;

ImhData:文本編輯器用于日期字段輸入;

ImhTime:文本編輯器用于時間字段輸入;

ImhPreferLation:拉丁語字元優先(不是必須);

ImhMultiLine:可以在文本字段中輸入多行;

ImhNoEditMenu:不适用内置編輯菜單;

ImhNoTextHandles:不使用内置文本光标和選擇操作方式;

ImhDigitsOnly:隻允許數字;

lmhFormattedNumbersOnly:隻允許輸入數字(包括小數點和負數符号);

lmhUppercaseOnly:隻允許輸入大寫字元;

lmhLowercaseOnly:隻允許輸入小寫字元;

lmhDialableCharactersOnly:隻允許輸入适合電話撥号的字元;

lmhEmailCharactersOnly:隻允許輸入适合電子郵箱位址的字元;

lmhUrlCharactersOnly:隻允許輸入适合URL的字元;

lmhLatinOnly:隻允許輸入拉丁語字元;

lmhExclusivelnputMask:若使用了任何獨占标志,此掩碼非零。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)

windowModality屬性

windowModality屬性隻對視窗對象有效,儲存的是哪些類型的視窗被模式視窗阻塞。模式視窗防止其他視窗中的部件擷取輸入。此屬性的值控制對應視窗可見時阻塞哪些類型的視窗擷取輸入。在模式視窗可見時更改此屬性無效。相關取值及含義如下:

NonModal:視窗不是模式視窗;

WindowModal:視窗是單視窗層次結構的模式,并阻止其父視窗、所有祖父母視窗以及其父視窗和祖父母視窗的所有兄弟視窗獲得瑜入;

ApplicationModal:視窗是應用模式視窗,阻塞所有其他應用視窗獲得輸入。

Python Qt GUI設計:UI界面可視化元件、屬性概述(基礎篇—4)