Qt勾选框QRadioButton与QCheckBox

        Qt中勾选框有两种,圆形按钮勾选框QRadioButton和小方块勾选框QCheckBox,虽然都继承自QAbstractButton但他们用途不同。

QRadioButton

        (0)简介

        QRadioButton 是 Qt 框架中的一个控件,用于创建和显示单选按钮。用户可以从一组选项中选择一个,每当选择一个新的选项时,之前选择的选项将会自动取消选择。

        (1)自动分组

                QRadioButton通常用来一组具有互斥关系的勾选框,即多个里面只能选择一个,选择“开心”了,在选择“李四”时,“开心”勾选状态会自动被取消。

                在一个容器内部的所有QRadioButton自动被分为一个组。如果要上面4个分为2组,需要放在2个不同的widget中。会被自动分2组。

        (2)通过代码设置分组
QRadioButton *radioButton1 = new QRadioButton("Option 1", this);
QRadioButton *radioButton2 = new QRadioButton("Option 2", this);

QButtonGroup *buttonGroup = new QButtonGroup(this);
buttonGroup->addButton(radioButton1, 1);
buttonGroup->addButton(radioButton2, 2);

connect(buttonGroup, &QButtonGroup::buttonClicked, this, &MyClass::onRadioButtonClicked);

void MyClass::onRadioButtonClicked(int id) {
    QRadioButton *selectedRadioButton = buttonGroup->button(id);
    // 处理选中的单选按钮
}
 (3)选中状态

        具有选中(checked)和未选中(unchecked)两种状态。

(4)用法总结

        (1)勾选框被点击,会发出clicked信号,是否需要绑定此信号处理,根据业务处理

        (2)需要时时影响的,绑定信号处理。比如特殊的考试,每页一道题,选项勾选完自动翻页。

        (3)不需要时时影响,如考试页面20道题,等全部完成点击交卷按钮后再去获取每道题的所有勾选框,验证答案

        通过 bool isChecked()判断是否被勾选

2、QCheckBox

        (0)简介

        QCheckBox 是 Qt 框架中的一个控件,用于创建和显示复选框。用户可以通过点击复选框来选择或取消选择一个选项

        (1)选中状态

勾选状态判断是个枚举值:未勾选、部分选中半勾选、勾选;三态

        enum CheckState { Unchecked, PartiallyChecked, Checked };

默认只有2种,未勾选和勾选。开启三态模式需要设置。

  启用或禁用三态行为:setTristate(bool enable);

        获取勾选状态Qt::CheckState checkState() const;

        设置勾选状态 void setCheckState(Qt::CheckState state);

        当勾选状态改变时,会发出信号void stateChanged(int);

        (2)用法

QCheckBox *checkBox = new QCheckBox("Remember me", this);
checkBox->setChecked(true); // 默认选中
connect(checkBox, &QCheckBox::clicked, this, &MyClass::onCheckBoxClicked);

void MyClass::onCheckBoxClicked(bool checked) {
    if (checked) {
        // 处理选中状态
    } else {
        // 处理未选中状态
    }
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值