У меня есть группа из 3 QRadioButtons и 2 checkable QGroupBoxes, которые должны быть взаимоисключающими. Мне нравится удобство добавления моих переключателей в QButtonGroup, чтобы автоматически обрабатывать это, но я не могу понять, как добавить QGroupBox в группу кнопок, потому что он не наследует от QAbstractButton, и я не могу найти доступ к его флажку.Добавить QGroupBox в QButtonGroup
Например,
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);
Есть простой способ сделать это? Я знаю, что я могу подключиться к сигналу clicked() QGroupBox, но я скорее сделаю это более чисто, чем это.
Итак, нет способа подключиться к ребенку QCheckBox QGroupBox? Например, я могу подключиться к QLineEdit, встроенному в QComboBox, с помощью QComboBox :: lineEdit(). – Phlucious
Но в этом случае QLineEdit является членом QComboBox, но QGroupBox может содержать любое число и любые производные от QWidget объекты ... поэтому для этого нет никакой конкретной функции. Но, возможно, вы можете использовать функцию [QObject :: findChildren] (http://doc.qt.io/qt-5/qobject.html#findChildren) для извлечения QCheckBox * дочерних элементов QGroupBox, а затем вы можете создавать соединения , –