如何验证Qt中是否选中了复选框?

时间:2014-11-28 22:00:27

标签: c++ qt checkbox qt5

nameLine实例this box is unchecked具有州QCheckBox时,以下代码应将checkbox表单的文本设置为Unchecked

这是我的复选框实例声明:

QCheckBox *checkbox = new QCheckBox("paid with cash!", this);
checkbox->setCheckState(Qt::Unchecked);

这是迄今为止的逻辑:

if(checkbox->checkState(Qt::Unchecked))
{
    nameLine->setText("the box is unchecked");
}

此代码无法编译。产生的错误如下:

C:\Qt\5.1.1\mingw48_32\examples\widgets\tutorials\addressbook\part1\voruskra.cpp:144: error: no matching function for call to 'QCheckBox::checkState(Qt::CheckState)'
    if(checkbox->checkState(Qt::Unchecked))
                                         ^

你能告诉我我做错了吗?

3 个答案:

答案 0 :(得分:9)

除非您使用三态复选框,否则只需if (checkbox->isChecked())

此属性在QAbstractButton中继承。如果是三态复选框,则必须按照其他答案中的建议使用checkState()

答案 1 :(得分:6)

我认为checkState没有任何争论。试试if(checkbox->checkState() == Qt::Unchecked)

答案 2 :(得分:2)

也许你可以这样试试?

QCheckBox *checkbox = new QCheckBox("paid with cash!", this);
checkbox->setChecked(false);

然后是if命令..

if(!checkbox->isChecked)
{
     nameLine->setText("the box is unchecked");
}