python GUI庫圖形界面開發(fā)之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例
QRadioButton 繼承自 QAbstractButton,其主要作用提供用戶一些互斥的按鈕。
QRadioButton 只有一個的時候,功能類似于復選框, 可以選擇和取消,但是如果有多個,則必須有一個被選中
QRadioButton類中常用的方法 方法 描述 setCheckanle() 設置按鈕是否已經(jīng)被選中,可以改變單選按鈕的選中狀態(tài),如果設置為True則表示單選按鈕將保持以點擊和釋放狀態(tài) isChecked() 返回單選按鈕的狀態(tài),返回值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信號與槽函數(shù)綁定 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的狀態(tài),選中還是沒選中 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,被設置成默認狀態(tài)
self.btn1.setChecked(True)
當選擇兩個按鈕相互切換時,按鈕的狀態(tài)發(fā)生改變,將觸發(fā)toggle信號,并與槽函數(shù)btnstate()連接。使用lamdba的方式允許將源信號傳遞給槽函數(shù),將按鈕作為參數(shù)
self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))
當發(fā)射toggled信號后,使用btnstate()函數(shù)來檢查按鈕的狀態(tài)
所有QRadioButton的控件是互斥的,所以也可以通過多個父控件來對QRadioButton進行分組。不過,一般使用QButtonGroup來對按鍵進行分組。通過按鍵分組的方式來讓不同類型的QRadioButton不互相排斥。
本文主要講解了PyQt5單選按鈕控件QRadioButton詳細使用方法與實例,更多關于PyQt5控件知識請查看下面的相關鏈接
相關文章:
1. ASP.NET MVC遍歷驗證ModelState的錯誤信息2. 將properties文件的配置設置為整個Web應用的全局變量實現(xiàn)方法3. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明4. jsp網(wǎng)頁實現(xiàn)貪吃蛇小游戲5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向7. asp中response.write("中文")或者js中文亂碼問題8. PHP設計模式中工廠模式深入詳解9. CSS hack用法案例詳解10. ThinkPHP5實現(xiàn)JWT Token認證的過程(親測可用)
