logplus/Workflow/WFWidget/src/PaiToolBar.cpp
2026-01-16 17:18:41 +08:00

113 lines
2.4 KiB
C++

/**
* @file PaiToolBar.cpp
* @date 2011-9-16
*/
#include <QPainter>
#include "PaiToolBar.h"
using namespace pai::gui;
PaiToolBar::PaiToolBar(QWidget *pParent) :
QToolBar(pParent)
{
InitToolBar();
}
PaiToolBar::PaiToolBar(const QString & title, QWidget *pParent) :
QToolBar(title, pParent)
{
InitToolBar();
}
PaiToolBar::~PaiToolBar()
{
}
void PaiToolBar::InitToolBar()
{
m_ShowTopEdge = true;
m_ShowBottomEdge = true;
m_ShowLeftEdge = true;
m_ShowRightEdge = true;
m_pLeftMarginWgt = new QWidget(this);
addWidget(m_pLeftMarginWgt);
SetLeftMargin(4); // 4px
}
void PaiToolBar::SetLeftMargin(int margin)
{
m_pLeftMarginWgt->setMaximumHeight(1);
m_pLeftMarginWgt->setMinimumHeight(1);
m_pLeftMarginWgt->setMaximumWidth(margin);
m_pLeftMarginWgt->setMinimumWidth(margin);
}
QAction* PaiToolBar::AddConstSpace(int space)
{
QWidget *pSpace = new QWidget(this);
pSpace->setMaximumHeight(1);
pSpace->setMinimumHeight(1);
pSpace->setMaximumWidth(space);
pSpace->setMinimumWidth(space);
return addWidget(pSpace);
}
void PaiToolBar::ShowBorder(bool top, bool bottom, bool left, bool right)
{
m_ShowTopEdge = top;
m_ShowBottomEdge = bottom;
m_ShowLeftEdge = left;
m_ShowRightEdge = right;
}
void PaiToolBar::paintEvent(QPaintEvent *pEvent)
{
Q_UNUSED(pEvent);
QLinearGradient linearGrad(QPointF(0, 0), QPointF(0, height()));
linearGrad.setColorAt(0.0, QColor("#FFFFFF"));
linearGrad.setColorAt(1.0, QColor("#E7F0F8"));
QRect rt = rect();
QPainter painter(this);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(linearGrad));
painter.drawRect(rt);
painter.setPen(QColor("#6D8298"));
if(m_ShowTopEdge)
{
painter.drawLine(rt.topLeft(), rt.topRight());
}
if(m_ShowBottomEdge)
{
painter.drawLine(rt.bottomLeft(), rt.bottomRight());
}
if(m_ShowLeftEdge)
{
painter.drawLine(rt.topLeft(), rt.bottomLeft());
}
if(m_ShowRightEdge)
{
painter.drawLine(rt.topRight(), rt.bottomRight());
}
}
QAction* PaiToolBar::AddSpacer()
{
QWidget *pWidget = new QWidget;
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(pWidget->sizePolicy().hasHeightForWidth());
pWidget->setSizePolicy(sizePolicy);
return addWidget(pWidget);
}