gpt4 book ai didi

c++ - 将一个 QRadioButton 分组为多个 QButtonGroups

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:51 41 4
gpt4 key购买 nike

例如,我有四个QRadioButtonrb1rb2rb3rb4 。我设置了 rb1rb3 选中:

rb1->setChecked(true);
rb3->setChecked(true);

此外,我有四个 QButtonGroup:bg12bg34bg13bg24,并使前两个非独占(默认情况下):

bg13->setExclusive(false);
bg24->setExclusive(false);

第一种情况:我在bg12中添加了rb1rb2,以及rb3 rb4bg34。然后我将所有按钮添加到网格布局,显示小部件,以及所有这些东西,一切都按预期工作(两个按钮处于事件状态,并且一行中的按钮排除了该行中的另一个)。

第二种情况:我在bg12中添加了rb1rb2,以及rb3 rb4bg34。然后我将 rb1rb3 添加到 bg13,将 rb2rb4 添加到bg24。现在它不像我预期的那样工作,它们的行为都像“免费”按钮,我可以选中/取消选中它们中的任何一个。那么,我做错了什么?

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

我想,您可能想知道我为什么要做这些奇怪的事情——我会解释的。我想保留一对 QRadioButton 的 vector ,并且每对中的一个按钮必须排除其对中的另一个(它们代表两个排他状态),所以我想将每对中的按钮分组独占的 QButtonGroup(如示例中的 bg12bg34),例如,还将每对的所有第一个按钮添加到另一个 QButtonGroup(非排他性,如示例中的 bg13)并为其指定一个 ID。因此,我将能够使用 QButtonGroup 类提供给我们的信号之一和 id 来处理状态变化。也许有更简单的方法?

最佳答案

QAbstractButton拥有一个QButtonGroup作为成员,所以一个按钮只能属于一个组。

但对于非独占组,您可以使用QSignalMapper代替。

关于c++ - 将一个 QRadioButton 分组为多个 QButtonGroups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129206/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com