7.7 QCheckBox控件


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

7.7 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控件

image.png

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" ;

    }

}

好文章,来自【福优学苑@音视频+流媒体】

image.png

image.png


猜猜你喜欢

文本框、按钮:

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

}

好文章,来自【福优学苑@音视频+流媒体】

image.png


好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***