#include "CUIWidget.h" #include "CUIConfig.h" #include "QVBoxLayout" #include #include #include /** * @brief CUIWidget::CUIWidget 构造函数 * @param conf 配置信息 * @param parent */ CUIWidget::CUIWidget(CUIConfig *conf, QVector &subCUI, QWidget *parent): CUIComponentBaseContainerWidget(parent) { this->m_conf = conf; initUI(subCUI); } /** * @brief CUIWidget::initUI 根据配置信息初始化 */ void CUIWidget::initUI(QVector &subCUI) { m_layout = this->getLayout(m_conf); this->setLayout(m_layout); for(auto &conf : this->m_conf->getSub()) { CUI* tmp = new CUI(nullptr, conf); subCUI.push_back(tmp); m_layout->addWidget(tmp->getUI()); } // 如果是垂直布局,则添加 底部的弹簧 if (qobject_cast(m_layout) != nullptr) { QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); ((QVBoxLayout*)m_layout)->addSpacerItem(verticalSpacer); } }