#include "CUIRadioComponent.h" #include "CUIConfig.h" #include "QVBoxLayout" #include #include #include #include #include CUIRadioComponent::CUIRadioComponent(CUIConfig *conf, QVector &subCUI, QWidget *parent) : CUIComponentBaseContainerWidget(parent) { this->conf = conf; iniUI(subCUI); connect(m_ButtonGroup,QOverload::of(&QButtonGroup::buttonClicked),[=](int idx){ this->conf->setValue((int)idx); }); } void CUIRadioComponent::iniUI(QVector &subCUI) { QString widget_type = this->conf->getPropertyValue("widget"); QHBoxLayout* mainLayout = new QHBoxLayout; m_layout = this->getLayout(conf); m_ButtonGroup = new QButtonGroup; if(widget_type == "GroupBox"){ iniUI_GroupBox(); mainLayout->addWidget(m_GroupBox); }else if(widget_type == "Component"){ iniUI_Component(); mainLayout->addWidget(m_label); mainLayout->addWidget(m_Component); } this->setLayout(mainLayout); } void CUIRadioComponent::iniUI_GroupBox() { m_GroupBox = new QGroupBox; m_GroupBox->setTitle(conf->getPropertyValue("name")); m_GroupBox->setLayout(m_layout); int idx = 0; for(auto conf:this->conf->getSub()){ QRadioButton* radio = new QRadioButton(conf->getPropertyValue("name")); m_layout->addWidget(radio); m_ButtonGroup->addButton(radio,idx); idx++; } } void CUIRadioComponent::iniUI_Component() { m_label = new QLabel(conf->getPropertyValue("name")); m_Component = new QWidget; m_Component->setLayout(m_layout); int idx = 0; for(auto conf:this->conf->getSub()){ QRadioButton* radio = new QRadioButton(conf->getPropertyValue("name")); m_layout->addWidget(radio); m_ButtonGroup->addButton(radio,idx); idx++; } }