QCheckBox控件

简介

QCheckBox继承自QAbstractButton,它提供了一个带文本标签的复选框

QCheckBox(复选框)和QRadioButton(单选框)都是选项按钮。这是因为它们都可以在开(选中)或者关(未选中)之间切换。

区别是对用户选择的限制:单选框定义了“多选一”的选择,而复选框提供的是“多选多”的选择。

  

复选框不同于单选框,它有三种状态:checked、unchecked和PartiallyChecked

Qt::Unchecked         0       The item is unchecked.

Qt::PartiallyChecked        1       The item is partially checked. Items in hierarchical models may be partially checked if some, but not all, of their children are checked.

Qt::Checked     2       The item is checked.

常用方法和属性如下:

//返回选择的状态

Qt::CheckState         checkState () const

//是否处于PartiallyChecked状态

bool isTristate () const

//设置选择的状态,checked或unchecked

void  setCheckState ( Qt::CheckState state )

//设置为PartiallyChecked状态

void  setTristate ( bool y = true ), triple

QCheckBox开启三态模式

// 开启三态模式:红灯、绿灯、黄灯
    ui->checkBox_apple->setTristate();
 

在UI界面中加入QCheckBox控件

 

stateChanged()信号

只要复选框被选中或者清除,都会发射一个stateChanged()信号。

如果想在复选框状态改变的时候触发一个行为,请连接这个信号,可以使用 isChecked()来查询复选框是否被选中。

头文件中声明槽:

private slots:
    void onStateChanged_apple(int state);

构造函数中关联信号和槽:

// 连接信号槽
    connect(ui->checkBox_apple, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged_apple(int)));

Cpp文件中实现槽函数:

void Widget::onStateChanged_apple(int state)
{
    if (state == Qt::Checked) // "选中"
    {
        qDebug() << "apple:Checked";
    }
    else if(state == Qt::PartiallyChecked) // "半选"
    {
        qDebug() << "apple:PartiallyChecked";
    }
    else // 未选中 - Qt::Unchecked
    {
        qDebug() << "apple:Unchecked" ;
    }
}
  

 

猜猜你喜欢

文本框、按钮:

void Widget::on_pushButton_guess_clicked()
{
    QString strFavorite;
    if ( ui->checkBox_apple->isChecked() ){
        strFavorite += "苹果;";
    }
    if ( ui->checkBox_banana->isChecked() ){
        strFavorite += "香蕉;";
    }
    if ( ui->checkBox_grape->isChecked() ){
        strFavorite += "葡萄;";
    }
    ui->lineEdit_favorite->setText(strFavorite);
}
 

 

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值