最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

按鈕類控件

2022-01-14 16:01 作者:海鷗之道  | 我要投稿

1.QAbstractButton

在任何GUI設(shè)計中,按鈕都是最重要的和常用的觸發(fā)動作請求的方式,用來與用戶進行交互操作。在PyQt中根據(jù)不同的使用場景將按鈕劃分為不同的表現(xiàn)形式。按鈕的基類是QAbstractButton,提供了按鈕的通用性功能。QAbstractButton類為抽象類,不能實例化,必須由其他的按鈕類繼承QAbstractButton類,來實現(xiàn)不同的功能、不同的表現(xiàn)形式。

常見的按鈕類包括:QPushButton、QToolButton、QRadioButton和 QCheckBox。這些按鈕類均繼承自QAbstractButton類,根據(jù)各自的使用場景通過圖形展現(xiàn)出來。

OAbstractButton提供的狀態(tài)如表1所示。

表? 1

QAbstractButton提供的信號如表2所示。

表? 2

2. QPushButton

QPushButton類繼承自QAbstractButton類,其形狀是長方形,文本標題或圖標可以顯示在長方形上。它也是一種命令按鈕,可以單擊該按鈕執(zhí)行一些命令,或者響應(yīng)一些事件。常見的有“確認”“申請”“取消”“關(guān)閉”“是”“否”等按鈕。

命令按鈕通常通過文本來描述執(zhí)行的動作,有時候也會通過快捷鍵來執(zhí)行對應(yīng)按鈕的命令。

1)?QPushButton類中的常用方法

QPushButton類中的常用方法如表3所示。

表? 3

2)為QPushButton設(shè)置快捷鍵

通過按鈕名字能為QPushButton設(shè)置快捷鍵,比如名字為“&Download”的按鈕,它的快捷鍵是“Alt+D”。其規(guī)則是:想要實現(xiàn)快捷鍵為“Alt +D”,那么按鈕的名字里就要有這個字母D,并且在字母D前面加上“&”。這個字母D一般是按鈕名稱的首字母,而且在按鈕顯示時,“&”不會被顯示出來,但字母D會顯示一條下畫線。如果只想顯示“&”,那么需要像轉(zhuǎn)義一樣使用“&&”。更多的關(guān)于快捷鍵的使用,請參考QShortcut類。其核心代碼如下:

當按下ALT時,"Download"首字母"D"下面會顯示橫線,顯示效果如圖,


實例演示1:QPushButton按鈕的使用

此示例中,演示了按鈕的各種功能,完整代碼如下:

運行代碼,顯示結(jié)果如下:

代碼分析:

在這個例子中,創(chuàng)建了btnl,btn2、btn3和 btn4 四個按鈕,這四個QPushButton對象被定義為類的實例變量。上面的代碼符合面向?qū)ο蟮脑O(shè)計思想。每個按鈕都將clicked 信號發(fā)送給指定的槽函數(shù),以響應(yīng)按鈕點擊事件。

第1個按鈕btnl,通過toggle()函數(shù)來切換按鈕狀態(tài)。其核心代碼是:

當點擊這個按鈕時,將clicked信號發(fā)送給槽函數(shù)btnstate(),通過btn.isChecked來獲得按鈕是否被點擊或釋放的狀態(tài)。其核心代碼是:

還可以通過lambda的方式來傳遞額外的參數(shù)btn1,將clicked信號發(fā)送給槽函數(shù)whichbtn()。其核心代碼是:

第2個按鈕btn2,上面顯示一個圖標。使用setIcon()方法接收一個QPixmap對象的圖像文件作為輸入?yún)?shù)。其核心代碼是:

第三個按鈕,使用setDefault(方法來設(shè)置按鈕的默認狀態(tài)。設(shè)置的快捷鍵“ALT+D”,可以使用快捷鍵來調(diào)用槽函數(shù)。

第四個按鈕,使用setEnable()方法來禁用。

3. QRadioButton

QRadioButton類繼承自QAbstractButton類,它提供了一組可供選擇的按鈕和文本標簽,用戶可以選擇其中一個選項,標簽用于顯示對應(yīng)的文本信息。單選鈕是一種開關(guān)按鈕,可以切換為on或者off,即checked或者unchecked,主要是為用戶提供“多選一”的選擇。

QRadioButton是單選鈕控件默認是獨占的(Exclusive)。對于繼承自同一個父類Widget的多個單選鈕,它們屬于同一個按鈕組合,在單選鈕組里,一次只能選擇一個單選鈕。如果需要多個獨占的按鈕組合,則需要將它們放在QGroupBox或OButtonGroup 中。

當將單選鈕切換到on或者off時,就會發(fā)送 toggled 信號,綁定這個信號,在按鈕狀態(tài)發(fā)生改變時,觸發(fā)相應(yīng)的行為。

ORadioButton類中的常用方法如表4所示。

表? 4

在QRadioButton中,toggled信號是在切換單選鈕狀態(tài)(開、關(guān))時發(fā)射的,而clicked信號則在每次點擊單選鈕時都會發(fā)射。在實際中,一般只有狀態(tài)改變時才有必要去響應(yīng),因此toggled信號更適合用于狀態(tài)監(jiān)控。

實例演示2:QRadioButton按鈕的使用

運行程序,顯示效果如下:

圖? 3

代碼分析:

在這個例子中,兩個互斥的單選鈕被放置在窗口中。第1個單選鈕 btnl,被設(shè)置成默認選中狀態(tài)。

當選擇兩個按鈕相互切換時,按鈕的狀態(tài)發(fā)生改變,將觸發(fā)toggle信號,并與槽函數(shù)btnstate()連接。使用 lambda的方式允許將源信號傳遞給槽函數(shù),將按鈕作為參數(shù)。

當發(fā)射toggled信號后,使用btnstate()函數(shù)來檢查按鈕的狀態(tài)。

4. QCheckBox

QCheckBox類繼承自QAbstractButton類,它提供了一組帶文本標簽的復(fù)選框,用戶可以選擇多個選項。和 QPushButton一樣,復(fù)選框可以顯示文本或者圖標,其中文本可以通過構(gòu)造函數(shù)或者 setText()來設(shè)置;圖標可以通過 setlcon()來設(shè)置。在視覺上,QButtonGroup可以把許多復(fù)選框組織在一起。

OCheckBox(復(fù)選框)和QRadioButton(單選鈕)都是選項按鈕,因為它們都可以在開(選中)或者關(guān)(未選中)之間切換。它們的區(qū)別是對用戶選擇的限制:單選鈕提供了“多選一”的選擇;而復(fù)選框提供的是“多選多”的選擇。

QCheckBox通常被應(yīng)用在需要用戶選擇一個或多個可用的選項的場景中。

只要復(fù)選框被選中或者取消選中,都會發(fā)射一個 stateChanged信號。如果想在復(fù)選框狀態(tài)改變時觸發(fā)相應(yīng)的行為,請連接這個信號,可以使用isChecked()來查詢復(fù)選框是否被選中。

除了常用的選中和未選中兩種狀態(tài),QCheckBox還提供了第三種狀態(tài)(半選中)來表明“沒有變化”。當需要為用戶提供一個選中或者未選中復(fù)選框的選擇時,這種狀態(tài)是很有用的。如果需要第三種狀態(tài),則可以通過setTristate()來使它生效,并使用checkState(來查詢當前的切換狀態(tài)。

QCheckBox類中的常用方法如表5所示。

表? 5

三態(tài)復(fù)選框有三種狀態(tài),如表6所示。

表? 6

實例演示3:QCheckBox按鈕的使用

運行程序,顯示效果如下:

代碼分析:

在這個例子中,將三個復(fù)選框添加到一個水平布局管理器中,并添加到一個QGroupBox組中。

將三個復(fù)選框的stateChanged信號都連接到槽函數(shù)stateChanged()。使用 lambda的方式傳遞對象給槽函數(shù)。

當QCheckBox狀態(tài)改變時發(fā)射stateChanged信號,當信號發(fā)生改變時觸發(fā)自定義的槽函數(shù)btnstate().

實例化checkBoxl和 checkBox2兩個對象,并將checkBox1的狀態(tài)設(shè)置為選中,為checkBox1設(shè)置快捷鍵,使用“&”符號,如“&Checkbox 1”,則通過“Alt+C"快捷鍵可以選中 checkBox1復(fù)選框。

使用按鈕的isChecked()方法,判斷復(fù)選框是否被選中,其核心代碼是:


按鈕類控件的評論 (共 條)

分享到微博請遵守國家法律
青神县| 富民县| 岱山县| 元朗区| 自治县| 静乐县| 远安县| 同心县| 汉源县| 历史| 隆尧县| 寻乌县| 庆安县| 顺平县| 孙吴县| 油尖旺区| 海伦市| 武冈市| 广水市| 张家界市| 沅江市| 濮阳县| 临澧县| 湖南省| 临湘市| 成都市| 安陆市| 正阳县| 广饶县| 邢台市| 甘谷县| 玉环县| 明光市| 仁怀市| 永城市| 齐齐哈尔市| 舞钢市| 长子县| 宁强县| 即墨市| 手游|