C++ 将一个QRadioButton分组为几个QButton组

C++ 将一个QRadioButton分组为几个QButton组,c++,qt,C++,Qt,例如,我有四个QRadioButtonsrb1,rb2,rb3,rb4。我将rb1和rb3设置为选中状态: rb1->setChecked(true); rb3->setChecked(true); 此外,我还有四个QButtonGroups:bg12、bg34、bg13和bg24,并将前两个设置为非独占(默认情况下): 第一种情况:我将rb1和rb2添加到bg12,将rb3和rb4添加到bg34。然后,我将所有按钮添加到网格布局中,显示小部件,以及所有这些东西,一切都按预期工作(

例如,我有四个
QRadioButton
s
rb1
rb2
rb3
rb4
。我将
rb1
rb3
设置为选中状态:

rb1->setChecked(true);
rb3->setChecked(true);
此外,我还有四个
QButtonGroup
s:
bg12
bg34
bg13
bg24
,并将前两个设置为非独占(默认情况下):

第一种情况:我将
rb1
rb2
添加到
bg12
,将
rb3
rb4
添加到
bg34
。然后,我将所有按钮添加到网格布局中,显示小部件,以及所有这些东西,一切都按预期工作(两个按钮处于活动状态,一行中的按钮排除其行中的其他按钮)

第二种情况:我将
rb1
rb2
添加到
bg12
,将
rb3
rb4
添加到
bg34
。然后我将
rb1
rb3
添加到
bg13
,将
rb2
rb4
添加到
bg24
。现在它不像我预期的那样工作,它们的行为都像«自由»按钮,我可以选中/取消选中其中任何一个。那么,我做错了什么

Upd:我也用
QPushButton
s尝试过它(所以,没有排他性之类的东西),它看起来就像是按钮已经在
QButtonGroup
中了,我添加了另一个按钮,它不再属于第一个按钮:(


我猜,你可能想知道我为什么要做这个wierd的事情——我会解释。我想保留一个向量,它是由
QRadioButton
s对组成的,每对中的一个按钮必须排除其对中的另一个按钮(它们代表两个排他状态),所以我想将每对中的按钮分组为排他
QButtonGroup
(如示例中的
bg12
bg34
),并将每对的所有第一个按钮添加到另一个
QButtonGroup
(非独占,如示例中的
bg13
)然后给它一个id。这样,我就可以用类提供给我们的一个信号和id来处理状态变化。也许有一个更简单的方法?

QAbstractButton将一个
QButtongGroup
作为成员,所以一个按钮只能属于一个组


但是对于非独占组,您可以使用
QSignalMapper
s。哇,QSignalMapper正是我需要的。非常感谢!
bg13->setExclusive(false);
bg24->setExclusive(false);