单选框
QRadioButton
是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项
单选框选中的信号是:toggled
代码示例:
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
def 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 sys
def func(state):
# 判断是否选中
if state == Qt.Checked: # 2
print('选中')
else: # 0
print('未选中')
# 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())