#include "CUIContainerWidget.h" #include #include #include #include "CUIConfig.h" #include "QVBoxLayout" /** * @brief CUIContainerWidget::CUIContainerWidget 构造函数 * @param conf 配置信息 * @param parent */ CUIContainerWidget::CUIContainerWidget(CUIConfig *conf, QVector &subCUI, QWidget *parent) : CUIComponentBaseContainerWidget(parent) { this->m_conf = conf; initUI(subCUI); } /** * @brief CUIContainerWidget::initUI 根据配置信息初始化 */ void CUIContainerWidget::initUI(QVector &subCUI) { m_layout = this->getLayout(m_conf); this->setLayout(m_layout); for (auto &conf : this->m_conf->getSub()) { CUIPropertyWidget *tmp = new CUIPropertyWidget(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); } }