我有,例如,四QRadioButton
小号rb1
,rb2
,rb3
,rb4
。我设置rb1
和rb3
检查:分组一个QRadioButton成几个QButtonGroups
rb1->setChecked(true);
rb3->setChecked(true);
而且,我有四个QButtonGroup
S:bg12
,bg34
,bg13
和bg24
,使前两个非排他性(它们是默认情况下):
bg13->setExclusive(false);
bg24->setExclusive(false);
第一种情况:我补充rb1
和rb2
到bg12
,并rb3
和rb4
到bg34
。然后,我将所有按钮添加到网格布局,显示小部件以及所有这些东西,一切按预期工作(两个按钮处于活动状态,并且一行中的按钮排除其行中的另一个按钮)。
第二种情况:我补充rb1
和rb2
到bg12
,并rb3
和rb4
到bg34
。然后我将rb1
和rb3
添加到bg13
,rb2
和rb4
到bg24
。现在它不像我预期的那样工作,它们都像«免费»按钮一样,并且我可以选中/取消选中它们中的任何一个。那么,我做错了什么?
UPD:我也有QPushButton
S(所以,没有排他性和这样的东西)试了一下,它只是看起来像,如果按钮已经处于QButtonGroup
,我添加它做一个又一个,这不是不属于第一个:(
我想,你可能会想知道为什么我会做这个奇怪的东西 - 我会解释我想保留一对QRadioButton
s的矢量,并在每一对中的按钮必须排除在其对中的另一个(它们代表两个异状态),所以想在每对组按钮的独家QButtonGroup
(在示例中一样bg12
和bg34
),并且还添加,例如,所有每对另一QButtonGroup
(非排他的,像bg13
从示例)的第一按钮,并给它的ID。所以,我将能够通过QButtonGroup
类为我们提供的信号和id之一处理状态变化。也许有一个更简单的方法?
哇,QSignalMapper正是我需要的。非常感谢! – karlicoss