Files
handleaiuinew/HanddleAI/HandleAiUi-new/front/ExtendedGroupBox.cpp
T
2024-05-18 23:53:26 +08:00

73 lines
1.7 KiB
C++

#include "ExtendedGroupBox.h"
ExtendedGroupBox::ExtendedGroupBox(QWidget* parent /*= nullptr*/, State state /*= STATE_NORMAL*/)
: QGroupBox(parent)
{
setObjectName("ExtendedGroupBox");
setCheckable(true);
state_ = state;
if (state_ == STATE_NORMAL)
{
//隐藏垂直边框
setFlat(true);
setChecked(false);
}
connect(this, SIGNAL(clicked(bool)), this, SLOT(onChecked(bool)));
}
ExtendedGroupBox::ExtendedGroupBox(const QString& title, QWidget* parent /*= nullptr*/, State state /*= STATE_NORMAL*/)
: QGroupBox(title, parent)
{
m_tittle = title;
setObjectName("ExtendedGroupBox");
setCheckable(true);
state_ = state;
if (state_ == STATE_NORMAL)
{
//隐藏垂直边框
setFlat(true);
setChecked(false);
}
connect(this, SIGNAL(clicked(bool)), this, SLOT(onChecked(bool)));
}
void ExtendedGroupBox::addWidget(QWidget* widget)
{
if (widget != nullptr)
{
if (state_ == STATE_NORMAL)
{
widget->setVisible(false);
}
children_.push_back(widget);
}
}
void ExtendedGroupBox::onChecked(bool checked)
{
if (checked)
{
//显示垂直边框
setFlat(false);
for (auto iter = children_.begin(); iter != children_.end(); ++iter)
{
(*iter)->setVisible(true);
}
state_ = STATE_EXPAND;
}
else
{
//隐藏垂直边框
setFlat(true);
for (auto iter = children_.begin(); iter != children_.end(); ++iter)
{
(*iter)->setVisible(false);
}
state_ = STATE_NORMAL;
}
}
ExtendedGroupBox::State ExtendedGroupBox::getState() const
{
return state_;
}