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環(huán)境使用)休傍。
1.7、輸入組件(Input Widgets)
輸入組件包括:Combo Box(下拉選框)蹲姐、Font Combo Box(下拉字體框)磨取、Line Edit(行編輯區(qū))人柿、Text Edit(文本編輯區(qū),只可以查看文字忙厌、圖片和動畫)、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潮孽、組件屬性
在Qt Designer中的每種組件屬性編輯部分可以進行設置揪荣,如下圖所示:
每種組件的屬性會有所不同之處,這里以QWidget窗口為例往史,簡單聊聊其屬性仗颈,如下所示:
讓我們一起看看吧~?
可以看到,最頂層的節(jié)點為組件對應的父類(Form),從上往下排列的節(jié)點挨决,基本按照父類在上请祖,子類在下的方式排列,很好的體現了類的繼承關系以及相關屬性是哪個類提供的脖祈。
enabled屬性
enabled屬性用于表示組件是否可用肆捕,一個組件的部件可以接收和處理鼠標和鍵盤事件,當組件不可用時則無法接收和處理鼠標和鍵盤事件盖高。
enabled屬性缺省值為True慎陵,有些組件在被禁用時會以不同的方式顯示自己。例如喻奥,按鈕可能會將其標簽顯示灰色席纽。
控制組件大小的屬性有:geometry 、sizePolicy映凳、minimumSize胆筒、maximumSize、sizeIncrement和baseSize诈豌,用于控制組件的初始大小以及動態(tài)調整大小的控制仆救。屬性配置界面的geometry定義了組件的初始大小,其他屬性都與組件大小調整時控制組件的大小相關矫渔。
geometry屬性
geometry屬性保存組件相對于其父級對象的位置和大小彤蔽,Qt實際上是以一個長方形來表示組件的位置和大小的,包括左上角的坐標位置庙洼、長和寬顿痪。
sizePolicy屬性
sizePolicy屬性用于說明組件在布局管理中的縮放方式,當部件沒有在布局管理器中時油够,該設置無效蚁袭。
sizePolicy屬性由四個值組成,分別是水平策略石咬、垂直策略揩悄、水平伸展和垂直伸展。
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屬性保存是否啟用組件的平板跟蹤醇滥,缺省是不起用的黎比。不啟用平板跟蹤的情況下,部件僅接收觸控筆與平板接觸或至少有個觸控筆按鍵按下時的觸控筆移動事件鸳玩。
如果組件啟用了平板跟蹤功能阅虫,部件能接收觸控筆靠近但未真正接觸平板時的觸控筆移動事件,這可以用于監(jiān)視操作位置以及部件的輔助操作功能(如旋轉和傾斜)不跟,并為圖形界面提供這些操作的信息接口颓帝。
focusPolicy屬性
focusPolicy屬性可以設置組件的焦點策略。設置參數說明如下所示:
NoFocus:組件不支持焦點;
TabFocus:Tab鍵獲取焦點购城;
ClickFocus:鼠標按下獲取焦點吕座;
StrongFocus:Tab鍵和鼠標按下獲取焦點;
WheelFocus:鼠標輪滾動獲取焦點瘪板。
contextMenuPolicy屬性
contextMenuPolicy屬性是組件的快捷菜單策略吴趴,快捷菜單通過在部件上點擊鼠標右鍵觸發(fā)。設置參數說明如下所示:
來源:CSDN博主老猿Python
acceptDrops屬性
acceptDrops屬性表示當前組件是否接受鼠標拖放事件侮攀,鼠標拖放應該是與鼠標拖拽結合在一起的锣枝,在Qt Designer中可以通過屬性acceptDrops設置部件是否接受鼠標拖放事件。如果部件接受拖放兰英,則在鼠標拖放時撇叁,拖放事件會發(fā)送給鼠標當前光標下接受拖放的第一個部件。
如果組件設置了acceptDrops屬性為True畦贸,則就是通知系統該組件可接受鼠標拖放事件陨闹。
windowTitel屬性
windowTitle屬性是對窗口標題進行設置。
windowIcon屬性
windowIcon屬性是對窗口圖標進行設置薄坏。
windowOpacity屬性
windowOpacity屬性為浮點數趋厉,表示組件透明度,為1完全不透明胶坠,為0完全透明觅廓,缺省是1。
toolTip屬性
toolTip屬性設置組件的toolTip提示信息涵但,toolTip提示信息在鼠標放到控件上會浮動出一個小框顯示提示信息杈绸。
toolTipDuration屬性
toolTipDuration屬性控制toolTip提示信息顯示的時長,單位是毫秒矮瘟,如果設置為-1瞳脓,則顯示時長根據toolTip內容的長度來計算。
statusTip屬性
statusTip屬性保存statusTip提示信息澈侠,statusTip提示信息在鼠標放到控件上時在窗口的狀態(tài)欄顯示提示信息劫侧,如果窗口無狀態(tài)欄則不顯示。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中的部件開發(fā)的。styleSheet的定義語法也是類似CSS蔫巩,并且是跨平臺支持的谆棱。
locale屬性
locale屬性用于設置語言環(huán)境,包括語言和國家圆仔。如果一個部件沒有設置語言環(huán)境垃瞧,則使用父對象的語言環(huán)境或者默認語言環(huán)境(如果部件是頂層部件)。
windowFilePath屬性
windowFilePath屬性僅對窗口對象有效坪郭,用于關聯一個窗口和對應的文件及路徑个从。
當窗口沒有設置標題屬性的情況下,則窗口標題展示展示windowFilePath對應的文件名的信息(路徑信息不展示)歪沃,如果二者都設置嗦锐,則優(yōu)先使用窗口標題屬性的設置作為標題。
該屬性缺省為空沪曙,這個功能在窗口打開文件進行操作時可以使用來標記打開的文件奕污。
inputMethodHints屬性
inputMethodHints屬性只對輸入組件有效,輸入法使用它來檢索有關輸入法應如何操作的提示液走,例如菊值,如果設置了只允許輸入數字的標志外驱,則輸入法可能會更改其可視組件,以反映只能輸入數字腻窒。相關取值及含義如下:
ImhNone:沒有提示昵宇;
ImhHiddenText:輸入時不顯示輸入字符;
ImhSensitiveData:輸入的文本不會由活動輸入法存儲在任何持續(xù)性存儲中儿子;
ImhNoAutoUppercase:輸入法不可在句子結束時自動切換到大寫瓦哎;
ImhPreferNumbers:數字優(yōu)先(不是必須);
ImhPreferUppercase:大寫字母優(yōu)先(不是必須)柔逼;
ImhPreferLowercase:小寫字母優(yōu)先(不是必須)蒋譬;
ImhNoPredictiveText:輸入時不使用聯想預測文字;
ImhData:文本編輯器用于日期字段輸入愉适;
ImhTime:文本編輯器用于時間字段輸入犯助;
ImhPreferLation:拉丁語字符優(yōu)先(不是必須);
ImhMultiLine:可以在文本字段中輸入多行维咸;
ImhNoEditMenu:不適用內置編輯菜單剂买;
ImhNoTextHandles:不使用內置文本光標和選擇操作方式;
ImhDigitsOnly:只允許數字癌蓖;
lmhFormattedNumbersOnly:只允許輸入數字(包括小數點和負數符號)瞬哼;
lmhUppercaseOnly:只允許輸入大寫字符;
lmhLowercaseOnly:只允許輸入小寫字符租副;
lmhDialableCharactersOnly:只允許輸入適合電話撥號的字符坐慰;
lmhEmailCharactersOnly:只允許輸入適合電子郵箱地址的字符;
lmhUrlCharactersOnly:只允許輸入適合URL的字符用僧;
lmhLatinOnly:只允許輸入拉丁語字符结胀;
lmhExclusivelnputMask:若使用了任何獨占標志,此掩碼非零责循。
windowModality屬性
windowModality屬性只對窗口對象有效把跨,保存的是哪些類型的窗口被模式窗口阻塞。模式窗口防止其他窗口中的部件獲取輸入沼死。此屬性的值控制對應窗口可見時阻塞哪些類型的窗口獲取輸入着逐。在模式窗口可見時更改此屬性無效。相關取值及含義如下:
NonModal:窗口不是模式窗口意蛀;
WindowModal:窗口是單窗口層次結構的模式耸别,并阻止其父窗口、所有祖父母窗口以及其父窗口和祖父母窗口的所有兄弟窗口獲得瑜入县钥;
ApplicationModal:窗口是應用模式窗口秀姐,阻塞所有其他應用窗口獲得輸入。