目錄
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界面組件,每種組件相對應有可設定的屬性,本篇博文來讓我們簡單了解一下吧~

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

1.1、布局組件(Layouts)
布局組件包括:Vertical Layout(水平布局)、Horizontal Layout(垂直布局)、Grid Layout(網格布局)、Form Layout(表單布局),

1.2、分隔組件(Spacers)
分隔組件包括:Horizontal Spacer(水平分隔)、Vertical Spacer(垂直分隔),

1.3、按鈕組件(Buttons)
按鈕組件包括:Push Button(按鈕)、Tool Button(工具按鈕)、Radio Button(單選框)、Check Box(復選框)、Command Link Button(命令鏈接按鈕)、Dialog Button Box(選擇按鈕),

1.4、表項視圖(Item Views)
表項視圖包括:List View(串列視圖)、Tree View(樹狀視圖)、Table View(表格視圖)、Column View(串列視圖)、Undo View(撤銷視圖),

1.5、表項組件(Item Widgets)
表項組件包括:List Widget(串列表項)、Tree Widget(樹狀表項)、Table Widget(表格表項),

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

1.7、輸入組件(Input Widgets)
輸入組件包括: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(快捷方式),

1.8、顯示組件(Display Widgets)
顯示組件包括: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檔案),

2、組件屬性
第二部分有較多內容參考、學習該文章:Designer組件屬性編輯界面中QWidget類相關屬性詳解,很多詳細知識點可以參照該博文,
在Qt Designer中的每種組件屬性編輯部分可以進行設定,如下圖所示:

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

讓我們一起看看吧~
可以看到,最頂層的節點為組件對應的父類(Form),從上往下排列的節點,基本按照父類在上,子類在下的方式排列,很好的體現了類的繼承關系以及相關屬性是哪個類提供的,
![]()
enabled屬性
enabled屬性用于表示組件是否可用,一個組件的部件可以接收和處理滑鼠和鍵盤事件,當組件不可用時則無法接收和處理滑鼠和鍵盤事件,
enabled屬性預設值為True,有些組件在被禁用時會以不同的方式顯示自己,例如,按鈕可能會將其標簽顯示灰色,

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

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屬性是調色板作用,管理著控制元件和表單的所有顏色,可用于管理控制元件的外觀顯示以及設定組成,
![]()

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


cursor屬性
cursor屬性保存組件的滑鼠游標形狀,當滑鼠位于該組件上時就會呈現該屬性設定的游標形狀,可取值的范圍及含義如下圖所示:

mouseTracking屬性
mouseTracking屬性用于保存是否啟用滑鼠跟蹤,預設情況是不啟用的,不啟用的情況下,對應部件只接收在滑鼠移動同時至少一個滑鼠按鍵按下時的滑鼠移動事件,啟用滑鼠跟蹤的情況下,任何滑鼠移動事件部件都會接收,
![]()
tabletTracking屬性
tabletTracking屬性保存是否啟用組件的平板跟蹤,預設是不起用的,不啟用平板跟蹤的情況下,部件僅接收觸控筆與平板接觸或至少有個觸控筆按鍵按下時的觸控筆移動事件,
如果組件啟用了平板跟蹤功能,部件能接收觸控筆靠近但未真正接觸平板時的觸控筆移動事件,這可以用于監視操作位置以及部件的輔助操作功能(如旋轉和傾斜),并為圖形界面提供這些操作的資訊介面,
![]()
focusPolicy屬性
focusPolicy屬性可以設定組件的焦點策略,設定引數說明如下所示:
- NoFocus:組件不支持焦點;
- TabFocus:Tab鍵獲取焦點;
- ClickFocus:滑鼠按下獲取焦點;
- StrongFocus:Tab鍵和滑鼠按下獲取焦點;
- WheelFocus:滑鼠輪滾動獲取焦點,

contextMenuPolicy屬性
contextMenuPolicy屬性是組件的快捷選單策略,快捷選單通過在部件上點擊滑鼠右鍵觸發,設定引數說明如下所示:

acceptDrops屬性
acceptDrops屬性表示當前組件是否接受滑鼠拖放事件,滑鼠拖放應該是與滑鼠拖拽結合在一起的,在Qt Designer中可以通過屬性acceptDrops設定部件是否接受滑鼠拖放事件,如果部件接受拖放,則在滑鼠拖放時,拖放事件會發送給滑鼠當前游標下接受拖放的第一個部件,
如果組件設定了acceptDrops屬性為True,則就是通知系統該組件可接受滑鼠拖放事件,
![]()
windowTitel屬性
windowTitle屬性是對視窗標題進行設定,

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

windowOpacity屬性
windowOpacity屬性為浮點數,表示組件透明度,為1完全不透明,為0完全透明,預設是1,
![]()
toolTip屬性
toolTip屬性設定組件的toolTip提示資訊,toolTip提示資訊在滑鼠放到控制元件上會浮動出一個小框顯示提示資訊,

toolTipDuration屬性
toolTipDuration屬性控制toolTip提示資訊顯示的時長,單位是毫秒,如果設定為-1,則顯示時長根據toolTip內容的長度來計算,
![]()
statusTip屬性
statusTip屬性保存statusTip提示資訊,statusTip提示資訊在滑鼠放到控制元件上時在視窗的狀態欄顯示提示資訊,如果視窗無狀態欄則不顯示,statusTip屬性預設值為空字串,

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

accessibleName屬性
accessibleName屬性是輔助閱讀中顯示的組件的名稱,用于殘疾人輔助閱讀,對于大多數小部件,無需設定此屬性,因為Qt會呼叫部件相關屬性顯示,如按鈕將顯示按鈕的文本,但當小部件不提供任何文本時,設定此屬性很重要,例如,只包含圖示的按鈕需要將此屬性設定為與螢屏閱讀器一起使用,此屬性默認為空,

accessibleDescription屬性
accessibleDescription屬性保存輔助技術所看到的部件描述,用于殘疾人輔助閱讀,是對accessibleName屬性的補充說明,此屬性默認為空,

layoutDirection屬性
layoutDirection屬性保存的是組件的布局方向,有三個取值:
- LeftToRight:從左到右布局;
- RightToLeft:從右到左布局;
- LayoutDirectionAuto:自動布局,

autoFillBackground屬性
autoFillBackground屬性可以確認組件背景是否自動填充,
![]()
styleSheet屬性
styleSheet屬性是定義組件外觀的屬性樣式表,在Qt中styleSheet樣式表是類似于html的css樣式一樣的方法,只是專門為Qt中的部件開發的,styleSheet的定義語法也是類似CSS,并且是跨平臺支持的,
![]()

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

windowFilePath屬性
windowFilePath屬性僅對視窗物件有效,用于關聯一個視窗和對應的檔案及路徑,
當視窗沒有設定標題屬性的情況下,則視窗標題展示展示windowFilePath對應的檔案名的資訊(路徑資訊不展示),如果二者都設定,則優先使用視窗標題屬性的設定作為標題,
該屬性預設為空,這個功能在視窗打開檔案進行操作時可以使用來標記打開的檔案,

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:若使用了任何獨占標志,此掩碼非零,

windowModality屬性
windowModality屬性只對視窗物件有效,保存的是哪些型別的視窗被模式視窗阻塞,模式視窗防止其他視窗中的部件獲取輸入,此屬性的值控制對應視窗可見時阻塞哪些型別的視窗獲取輸入,在模式視窗可見時更改此屬性無效,相關取值及含義如下:
- NonModal:視窗不是模式視窗;
- WindowModal:視窗是單視窗層次結構的模式,并阻止其父視窗、所有祖父母視窗以及其父視窗和祖父母視窗的所有兄弟視窗獲得瑜入;
- ApplicationModal:視窗是應用模式視窗,阻塞所有其他應用視窗獲得輸入,
![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/298668.html
標籤:python
