Qt QButtonGroup 一些记录

1、需求是这样,把n个按钮放入QButtonGroup中,可以不选,也可以只选中一个。QButtonGroup默认exclusive属性为true,即单选。那么问题来了,如何做到一个也不选呢,当前情况即使再单击选中的按钮,状态也不会变为unChecked。

我的做法是添加一个辅助按钮AsstBtn放入QButtonGroup中,然后设置为隐藏,当我们不需要选中时,就把这个隐藏的按钮设置为check状态,可以完美匹配需求~

2、在做上面需求的过程中,出了点小问题。在把AsstBtn放入QButtonGroup中时,我使用了QButtonGroup->addButton(AsstBtn, -1)。本意是想判断QButtonGroup checkId时,有一个-1的判断。但是却发现这个checkId值不为-1,应用到项目里就有诡异的现象。发现这个问题后,我还是乖乖地用宏定义设置一个其他特殊值了。

在实际项目中,上面这种UI 利用辅助控件来打到对应目的的思路,我已经用到了很多次,帮助还是很大的,希望对大家有所帮助。

上码~

Qt QButtonGroup 一些记录