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。