8#include "ui_customgroupbox.h"
27 m_layout =
new QVBoxLayout;
28 m_layout->setMargin(0);
29 ui->frame->setLayout(m_layout);
30 const int minHeight = 10;
31 ui->contentWidget->setMinimumHeight(minHeight);
35 connect(ui->arrowButton,
SIGNAL(clicked(
bool)),
this, SLOT(onArrowPressed(
bool)));
38 ui->header->setAttribute(Qt::WA_StyledBackground,
true);
40 QAction* expandAll = m_contextMenu.addAction(
"Expand all");
41 connect(expandAll,
SIGNAL(triggered()),
this, SLOT(onExpandAll()));
43 QAction* collapseAll = m_contextMenu.addAction(
"Collapse all");
44 connect(collapseAll,
SIGNAL(triggered()),
this, SLOT(onCollapseAll()));
55 ui->header->setText(
string);
61 QString stileSheet = QString(
"text-align: left; color: rgb(35, 38, 41); background-color: rgb(%1, %2, %3)")
62 .arg(backgroundColor.red()).arg(backgroundColor.green()).arg(backgroundColor.blue());
63 ui->header->setStyleSheet(stileSheet);
68 QString stileSheet = QString(
"text-align: left; color: rgb(35, 38, 41);");
69 ui->header->setStyleSheet(stileSheet);
74 ui->header->setIcon(icon);
79 m_layout->addWidget(widget);
84 ui->contentWidget->setVisible(
visible);
86 ui->arrowButton->setArrowType(m_visible ? Qt::ArrowType::DownArrow : Qt::ArrowType::RightArrow);
93 ui->header->setContextMenuPolicy(Qt::CustomContextMenu);
95 connect(ui->header,
SIGNAL(customContextMenuRequested(QPoint)),
96 this, SLOT(onShowContextMenu(QPoint)));
100 ui->header->setContextMenuPolicy(Qt::NoContextMenu);
102 disconnect(ui->header,
SIGNAL(customContextMenuRequested(QPoint)),
103 this, SLOT(onShowContextMenu(QPoint)));
114 for (
int i = 0; i < m_layout->count(); ++i)
116 QWidget* child = m_layout->itemAt(i)->widget();
117 if (child->objectName() ==
"CustomGroupBox")
125void CustomGroupBox::onArrowPressed(
bool)
130void CustomGroupBox::onTitleDoubleClick()
135void CustomGroupBox::onExpandAll()
140void CustomGroupBox::onCollapseAll()
145void CustomGroupBox::onShowContextMenu(QPoint pos)
147 m_contextMenu.exec(mapToGlobal(pos));
int SIGNAL(int pid, int signum)
void mouseDoubleClickEvent(QMouseEvent *) override
void sig_titleDoubleClick()
CustomGroupBoxLabel(QWidget *parent=nullptr)
~CustomGroupBox() override
void setTitleIcon(const QIcon &icon)
void sig_titleDoubleClick()
CustomGroupBox(QWidget *parent=nullptr)
void enableCollapseAllContextMenu(bool enable)
void toggle(bool visible)
void setTitleBackgroundColor(const QColor &backgroundColor)
void toggleChildren(bool visible)
void addWidget(QWidget *widget)
void setTitle(const QString &string)
void removeTitleBackground()