gpt4 book ai didi

c++ - 将 QGroupBox 添加到 QButtonGroup

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:50:27 25 4
gpt4 key购买 nike

我有一组 3 QRadioButtons和 2 个可检查的 QGroupBoxes这需要相互排斥。我喜欢将单选按钮添加到 QButtonGroup 的便利性自动处理这个问题,但我似乎无法弄清楚如何将 QGroupBox 添加到按钮组,因为它不是从 QAbstractButton 继承的,而且我找不到对其复选框的访问权限。

例如,

QRadioButton* rb1 = new QRadioButton("Button1");
QRadioButton* rb2 = new QRadioButton("Button2");
QRadioButton* rb3 = new QRadioButton("Button3");
QGroupBox* gb1 = new QGroupBox;
gb1->setCheckable(true);
QGroupBox* gb2 = new QGroupBox;
gb2->setCheckable(true);
QRadioButton* rb1 = new QRadioButton("Button1");

QButtonGroup* grp = new QButtonGroup;
grp->addButton(rb1);
grp->addButton(rb2);
grp->addButton(rb3);
grp->addButton(gb1); //these two fail
grp->addButton(gb2);

有没有简单的方法可以做到这一点?我知道我可以连接到 QGroupBox 的 clicked() 信号,但我宁愿这样做比那更干净。

最佳答案

您只能将 QAbstractButton 派生类添加到 QButtonGroup 实例。所以在你的情况下,如果你想将 QGroupBox 作为独占项目之一处理,我认为你需要自己实现它。也许您可以将上述小部件中的所有 SIGNAL 连接到同一个 SLOT,并且在该 SLOT 中,您可以在发送函数的帮助下更新选中/未选中的小部件:

QObject* object = sender();

if ( object == groupBox1 )
{
// ...
}
else if ( object == groupBox1 )
{
// ...

但是如果你需要在很多地方这样做,那么你应该为此目的实现某种帮助类。

关于c++ - 将 QGroupBox 添加到 QButtonGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929685/

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