|
|
|
#include "CUIRadioComponent.h"
|
|
|
|
#include "CUIConfig.h"
|
|
|
|
#include "QVBoxLayout"
|
|
|
|
|
|
|
|
#include <QGroupBox>
|
|
|
|
#include <QWidget>
|
|
|
|
#include <QRadioButton>
|
|
|
|
#include <QLabel>
|
|
|
|
#include <QButtonGroup>
|
|
|
|
|
|
|
|
CUIRadioComponent::CUIRadioComponent(CUIConfig *conf, QVector<CUI *> &subCUI, QWidget *parent) : CUIComponentBaseContainerWidget(parent)
|
|
|
|
{
|
|
|
|
this->conf = conf;
|
|
|
|
iniUI(subCUI);
|
|
|
|
|
|
|
|
connect(m_ButtonGroup,QOverload<int>::of(&QButtonGroup::buttonClicked),[=](int idx){
|
|
|
|
this->conf->setValue((int)idx);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CUIRadioComponent::iniUI(QVector<CUI *> &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++;
|
|
|
|
}
|
|
|
|
}
|