单选和多选框

单选框

QRadioButton是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项.

单选框选中的信号是: toggled

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys

def func(checked):
    '''
    状态变化的槽函数
    :param checked: 是否被选中
    :return:
    '''
    print('状态变化',checked)

# 1.创建应用程序
app = QApplication(sys.argv)

# 2.创建窗口
window = QWidget()


# 修改窗口标题
window.setWindowTitle('单选框')
"""------------------ 创建布局 ------------------"""
layout = QHBoxLayout()
# 添加布局到窗口中
window.setLayout(layout)
# 创建两个单选框
rb1 = QRadioButton('男')
rb2 = QRadioButton('女')
rb1.setChecked(True)
# 添加到布局中
layout.addWidget(rb1)
layout.addWidget(rb2)

# 绑定信号和槽
rb1.toggled.connect(func)

# 3.显示窗口
window.show()

# 4.等待窗口停止
sys.exit(app.exec())

多选框

QCheckBox提供了一组带文本标签的复选框,用户可以选择多个选项

多选框选中的信号是: stateChanged

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys


def func(state):
    if state == 2:
        print('选中')
    elif state == 0:
        print('取消选中')



# 1.创建应用程序
app = QApplication(sys.argv)

# 2.创建窗口
window = QWidget()

# 修改窗口标题
window.setWindowTitle('复选框')
"""------------------ 窗口布局 ------------------"""
layout = QHBoxLayout()
# 添加到窗口中
window.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.显示窗口
window.show()

# 4.等待窗口停止
sys.exit(app.exec())