PyQt5 QRadioButton单选按钮控件详解:方法、信号与分组机制
本文深入解析PyQt5中QRadioButton控件的使用方法。涵盖setChecked、isChecked等核心API,详解toggled信号与lambda表达式在状态监听中的应用,并演示如何通过QButtonGroup实现多组互斥按钮的独立管理,附带完整代码示例与效果说明。
PyQt5单选按钮控件QRadioButton简介
QRadioButton类继承自QAbstractButton,旨在为用户提供一组互斥的选择项。
当仅存在一个QRadioButton时,其行为类似于复选框,允许用户进行选中与取消操作;而在存在多个单选按钮的场景下,系统强制要求必须有一个按钮处于选中状态。
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_())
效果如图

QRadioButton代码分析
在此示例中,两个互斥的单选按钮被放置在窗口界面中。
第一个单选按钮btn1被设置为默认选中状态。
self.btn1.setChecked(True)
当用户在两个按钮之间切换选择时,按钮状态发生变化并触发toggle信号,该信号与槽函数btnstate()相连。此处采用lambda方式,允许将源信号作为参数传递给槽函数,从而获取具体的按钮对象。
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控件知识请查看下面的相关链接
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









