当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))
^
你能告诉我我做错了吗?
答案 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");
}