您好,登錄后才能下訂單哦!
QRadioButton 繼承自 QAbstractButton,其主要作用提供用戶一些互斥的按鈕。
QRadioButton 只有一個的時候,功能類似于復選框, 可以選擇和取消,但是如果有多個,則必須有一個被選中
方法 | 描述 |
---|---|
setCheckanle() | 設置按鈕是否已經被選中,可以改變單選按鈕的選中狀態,如果設置為True則表示單選按鈕將保持以點擊和釋放狀態 |
isChecked() | 返回單選按鈕的狀態,返回值True或False |
setText() | 設置單選按鈕顯示的文本 |
text() | 返回單選按鈕顯示的文本 |
QRadioButton按鈕的使用實例
import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class RadioDemo(QWidget): def __init__(self,parent=None): super(RadioDemo,self).__init__(parent) #水平布局 layout=QHBoxLayout() self.btn1=QRadioButton('Button1') #默認選中btn1 self.btn1.setChecked(True) #toggled信號與槽函數綁定 self.btn1.toggled.connect(lambda :self.btnstate(self.btn1)) layout.addWidget(self.btn1) self.btn2 = QRadioButton('Button2') self.btn2.toggled.connect(lambda: self.btnstate(self.btn2)) layout.addWidget(self.btn2) self.setLayout(layout) self.setWindowTitle('RadioButton demo') def btnstate(self,btn): #輸出按鈕1與按鈕2的狀態,選中還是沒選中 if btn.text()=='Button1': if btn.isChecked()==True: print(btn.text()+"is selected") else: print(btn.text()+"is deselected") if btn.text()=="Button2": if btn.isChecked() == True: print(btn.text() + "is selected") else: print(btn.text() + "is deselected") if __name__ == '__main__': app=QApplication(sys.argv) radioDemo=RadioDemo() radioDemo.show() sys.exit(app.exec_())
效果如圖
在這個例子中,兩個互斥的單選框被放置在窗口中
第一個單選按鈕btn1,被設置成默認狀態
self.btn1.setChecked(True)
當選擇兩個按鈕相互切換時,按鈕的狀態發生改變,將觸發toggle信號,并與槽函數btnstate()連接。使用lamdba的方式允許將源信號傳遞給槽函數,將按鈕作為參數
self.btn1.toggled.connect(lambda :self.btnstate(self.btn1)) self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))
當發射toggled信號后,使用btnstate()函數來檢查按鈕的狀態
所有QRadioButton的控件是互斥的,所以也可以通過多個父控件來對QRadioButton進行分組。不過,一般使用QButtonGroup來對按鍵進行分組。通過按鍵分組的方式來讓不同類型的QRadioButton不互相排斥。
本文主要講解了PyQt5單選按鈕控件QRadioButton詳細使用方法與實例,更多關于PyQt5控件知識請查看下面的相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。