单选框
QRadioButton是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项
单选框选中的信号是:toggled
代码示例:
from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysdef func(checked):'''状态变化的槽函数:param checked: 是否被选中:return:'''print('状态变化', checked)# 1.创建应用程序app = QApplication(sys.argv)# 2.创建窗口w = QWidget()# 修改窗口标题w.setWindowTitle('单选框')"""------------------ 创建布局 ------------------"""layout = QHBoxLayout()# 添加布局到窗口中w.setLayout(layout)# 创建两个单选框rb1 = QRadioButton('男')rb2 = QRadioButton('女')rb1.setChecked(True)# 添加到布局中layout.addWidget(rb1)layout.addWidget(rb2)# 绑定信号和槽rb1.toggled.connect(func)# 3.显示窗口w.show()# 4.等待窗口停止sys.exit(app.exec())
如果想给QRadioButton组设置监听事件,可按照如下代码添加:
# 声明槽函数def on_group_toggle(btn: QRadioButton):print(btn, btn.isChecked())# 添加两个单选钮到QButtonGroup,并添加选中事件group = QButtonGroup(w)group.addButton(btn1)group.addButton(btn2)group.buttonToggled.connect(on_group_toggle)
2. 复选框
QCheckBox提供了一组带文本标签的复选框,用户可以选择多个选项
复选框的状态变化信号是stateChanged
代码示例:
from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *import sysdef func(state):# 判断是否选中if state == Qt.Checked: # 2print('选中')else: # 0print('未选中')# 1.创建应用程序app = QApplication(sys.argv)# 2.创建窗口w = QWidget()# 修改窗口标题w.setWindowTitle('复选框')"""------------------ 窗口布局 ------------------"""layout = QHBoxLayout()# 添加到窗口中w.setLayout(layout)# 控件label = QLabel()label.setText('谦哥的爱好:')ck1 = QCheckBox('抽烟')ck2 = QCheckBox('喝酒')ck3 = QCheckBox('烫头')# 选中第一个ck1.setChecked(True)# 添加控件到布局中layout.addWidget(label)layout.addWidget(ck1)layout.addWidget(ck2)layout.addWidget(ck3)# 绑定信号和槽ck1.stateChanged.connect(func)# 3.显示窗口w.show()# 4.等待窗口停止sys.exit(app.exec())
