qt QButtonGroup里面的button,设置非checkde状态,而不是通过设置其他按钮的形式

通常我们使用QButtonGroup都是为了按钮挥斥,选择一个按钮然后其他按钮恢复非选择状态。

那么我们怎么通过代码来设置当前选择按钮设为非选择状态呢?

可能你会说很简单直接这样

pButton->setChecked(false);

执行当前代码后,会发现按钮还是处于选择状态,其样式并没有改变。

这是为什么呢

QButtonGroup默认是互斥状态,也就是里面只只能有一个按钮处于选择状态。当选择另一个按钮另一个按钮自动处于非选择状态

而且不能通过点击当前选择按钮来取消当前按钮的选择状态

必须通过一个按钮的选择来替换另一个按钮

那应该怎么取消当前按钮选择状态而不是以点击另一个按钮的形式呢

通过下面代码即可实现

btnGroup.setExclusive(false);
pButton->setChecked(false);
btnGroup.setExclusive(true);

先取消QButtonGroup的互斥状态,再设置按钮为非选择状态即可实现想要的效果。