【8】PyQt单选框和复选框

目录

1. 单选框

2. 复选框


1. 单选框

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())

猜你喜欢

转载自blog.csdn.net/bug_love/article/details/134840861