将QT中QRadioButton按钮从选中状态设置为未选中状态
笔者初学QT,在开发过程中,遇到了⼀个问题,⽐如说像下图这样的情况
假如要重新考试 那么对于软件来说,应该要做的⼀个措施就是,在⽤户点击Yes之后,将⽤户所有的已经选中的答案的状态设为未选中状态,那么怎样设置呢?我在想到这个问题的时候,也是不知所措,但这对于开发者来说便是⼀个需求,经过笔者不懈努⼒的查看⽂档,才发现:这种按钮你点击之前,它的属
性是UnChecked,点击以后,属性会变成Checked,所以我们要做的就是,将它的属性变成UnChecked.
在Button的⽅法⾥⾯,有⼀个⽅法是setChecked(bool b)⽅法,这个⽅法的作⽤就是可以将它的属性设置为UnChecked属性,于是我知道以后,觉得这不是挺简单的嘛,于就有了下⾯这段代码
//m_button是⼀个QRadioButton的数组
htmlradio设置默认的按钮for(int i=0;i<10;i++)
{
m_button[i]->setChecked(false);
}
我以为这样就结束了,但是我运⾏程序以后发现,事情并没有这么简单,所有的按钮并未像我所想的那样,成为未选中状态,这就有点⽆语了,难道是setChecked⽅法没⽤吗,当然不是,后来我想,之所以没效果,是因为setChecked⽅法相当于是初始化,新建⼀个按钮的时候,它的状态默认的是UnChecked,⽽你初始的时候已经是Checked状态了,所以即使调⽤了也不会改变它的值,瞅了⼀眼⽂
档,和setChecked⽅法紧挨着有⼀个setCheckable⽅法,作⽤便是,设置按钮是否可选,如果是false,那么这个按钮你就点不了,既然⼀个按钮不可选中,那么它肯定是UnChecked状态的
因此我们可以将代码改成
for(int i=0;i<10;i++)
{
m_button[i]->setCheckable(false);
m_button[i]->setCheckable(true);
}
先将它设置为不可选中,使它的属性变为UnChecked状态,然后再将其设置为可选中,因此这样就能改变按钮的状态了!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。