QRadioButton


QRadioButton

該類提供了一組可供選擇的按鈕和文本標簽,用戶可以選擇其中一個選項,標簽用於顯示對應的文本信息。單選鈕是一種開關按鈕,可以切換為on或者off,急checked或者unchecked,主要是為用戶提供“多選一”的選擇。

QRadioButton 是單選按鈕默認是獨占的。對於繼承自同一個人父類Widget的多個單選按鈕,他們屬於同一個按鈕組合,在單選鈕組里,一次只能選擇一個單選鈕。如果需要多個獨占的按鈕組合,則需要將他們放在QGroupBox或QButtonGroup中。

當將單選按鈕切換到ON或者OFF時,就會發送toggled信號,綁定這個信號,在按鈕狀態發生改變時,觸發相應的行為。

QRadioButton類中的常用方法如下所示:

 

方法 描述
setCheckable() 設置按鈕是否被選中,可以改變單選鈕的選中狀態,如果設置為True,則表示單選鈕將保持已點擊或釋放狀態。
isChecked() 返回單選按鈕的狀態。設置返回值True或False
setText() 設置單選按鈕的顯示文本
text() 返回單選鈕的顯示文本

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

QRadioButton按鈕的使用

代碼:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class RedioDemo(QWidget):
   def __init__(self):
       super(RedioDemo, self).__init__()

       layout = QHBoxLayout()
       self.btn1 = QRadioButton("Button1")
       # 默認為選中狀態
       self.btn1.setChecked(True)
       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")
       self.resize(100,100)


   def btnstate(self, btn):
       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 = RedioDemo()
   radioDemo.show()
   sys.exit(app.exec_())

效果如圖所示:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM