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控件
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);
}
好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***