python GUI庫圖形界面開發之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例
QRadioButton 繼承自 QAbstractButton,其主要作用提供用戶一些互斥的按鈕。
QRadioButton 只有一個的時候,功能類似于復選框, 可以選擇和取消,但是如果有多個,則必須有一個被選中
QRadioButton類中常用的方法 方法 描述 setCheckanle() 設置按鈕是否已經被選中,可以改變單選按鈕的選中狀態,如果設置為True則表示單選按鈕將保持以點擊和釋放狀態 isChecked() 返回單選按鈕的狀態,返回值True或False setText() 設置單選按鈕顯示的文本 text() 返回單選按鈕顯示的文本QRadioButton按鈕的使用實例
import sysfrom 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控件知識請查看下面的相關鏈接
相關文章:
