14.PyQt5【基本组件】单选按钮-QRadioButton
一、前言
QRadioButton类对象呈现一个带有文本标签的可选按钮。用户可以选择表单上显示的许多选项之一。该类派生自 QAbstractButton 类。
默认情况下,单选按钮是自动排他的。因此,一次只能选择父窗口中的一个单选按钮。如果选择了一个,则会自动取消选择先前选择的按钮。
二、学习目标
1.QRadioButton常用方法
2.QRadioButton常用信号
3.QRadioButton组件的应用
三、知识点
1.【QRadioButton常用方法】
方法 | 描述 |
---|---|
setCheckable() | 设置按钮是否被选中,可以改变单选钮的选中状态,如果设置为True,则表示单选钮将保持已点击或释放状态。 |
isChecked() | 返回单选按钮的状态。设置返回值True或False |
setText() | 设置单选按钮的显示文本 |
text() | 返回单选钮的显示文本 |
2.【QRadioButton常用信号】
信号 | 描述 |
---|---|
clicked(bool) | 当鼠标左键被按下,一直按着或者释放时,或者快捷键被按着或者释放时触发该信号 |
pressed() | 当鼠标指针在按钮上并按下左键时触发该信号,一直按着或者按下并释放都会产生 |
released() | 当鼠标左键被释放时触发该信号 |
toggled(checked) | 当按钮的checkable设置为True时,其状态发生改变时触发该信号 |
3.【QRadioButton组件的应用】
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QRadioButton组件示例")
# 创建布局
self.layout = QVBoxLayout()
# QRadioButton组件定义
self.radio1 = QRadioButton(self)
self.radio1.setText("第一个单选按钮") # radio1设置文本
self.radio2 = QRadioButton('第二个单选按钮', self)
# QRadioButton组件设置
self.radio2.setCheckable(True) # radio1设置默认可选择
# QRadioButton关联信号
self.radio2.toggled.connect(self.on_radio2_toggled)
# 将组件添加到布局中
self.layout.addWidget(self.radio1)
self.layout.addWidget(self.radio2)
# 为窗体添加布局
self.setLayout(self.layout)
def on_radio2_toggled(self):
"""radio2组件槽函数"""
print("radio2单选按钮被切换啦!")
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
-
关键代码
# QRadioButton组件定义 self.radio1 = QRadioButton(self) self.radio1.setText("第一个单选按钮") # radio1设置文本 self.radio2 = QRadioButton('第二个单选按钮', self) # QRadioButton组件设置 self.radio2.setCheckable(True) # radio1设置默认可选择 # QRadioButton关联信号 self.radio2.toggled.connect(self.on_radio2_toggled)
QRadioButton组件同样支持两种设置文本的方式,QRadioButton类继承自QAbstractButton 类,所以我们可以使用QAbstractButton 类的支持的信号,如toggled。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码