QCheckBox *checkBox = new QCheckBox(this);
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(slotStateChanged(int)));
// 除了点击QCheckBox外,以下函数也能触发slotStateChanged槽函数
checkBox->setChecked(true); // 槽函数的参数是2
checkBox->setChecked(false); // 槽函数的参数是0
checkBox->setCheckState(Qt::Checked); // 槽函数的参数是2
checkBox->setCheckState(Qt::Unchecked); // 槽函数的参数是0
// 如果想要通过代码改变QCheckBox的状态,同时不触发槽函数,
// 可以简单地阻塞信号,并且之后重新启用它们
checkBox->blockSignals(true);
checkBox->setCheckState(Qt::Checked);
checkBox->blockSignals(false);
// QCheckBox状态改变时会触发该槽函数
void Widget::slotStateChanged(int state)
{
// QCheckBox为勾选时,state=2,QCheckBox为未勾选时,state=0
qDebug() << "slotStateChanged state = " << state;
// 获取状态改变的QCheckBox的文本
QString strText = ((QCheckBox *)sender())->text().trimmed();
}
QCheckBox
最新推荐文章于 2024-03-18 17:35:17 发布