logplus/Workflow/WFEngine/Component/WorkflowWidget/include/ModelProgressGraphicsItem.h

130 lines
3.3 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file ModelProgressGraphicsItem.h
* @brief
* @date 2013-4-17
*/
#ifndef PAI_FRAME_WORKFLOWWIDGET_MODULEPROGRESSGRAPHICSITEM_H
#define PAI_FRAME_WORKFLOWWIDGET_MODULEPROGRESSGRAPHICSITEM_H
#include <QGraphicsItem>
#include <QWidget>
/**
* @brief
*/
enum
{
INPUT_BARTYPE = 1, ///< 输入类型
OUTPUT_BARTYPE ///< 输出类型
};
namespace pai
{
namespace gui
{
/**
* @class ModelProgressGraphicsItem
* @brief item
*/
class ModelProgressGraphicsItem: public QGraphicsItem
{
public:
/**
* @brief item的类型
*/
enum
{
Type = UserType + 1345 ///< 当前item类型
};
/**
* @brief
* @param[in] barType
* @param[in] stepID stepID
* @param[in] pParent
*/
ModelProgressGraphicsItem(int barType, int stepID, QGraphicsItem *pParent = NULL);
/**
* @brief
*/
virtual ~ModelProgressGraphicsItem();
/**
* @brief
* @return
*/
virtual int type() const;
/**
* @brief
* @param[in] beforeColor
* @param[in] afterColor进度条后面的颜色
* @param[in] fontColor
*/
void SetBarColor(const QColor& beforeColor,
const QColor& afterColor,
const QColor& fontColor);
/**
* @brief
* @param[in] barText
* @param[in] veryText
* @param[in] topText
*/
void SetBarText(const QString& barText,
const QString& veryText,
const QString& topText);
/**
* @brief
*/
void UpdatePosition();
/**
* @brief
* @return
*/
virtual QRectF boundingRect() const;
/**
* @brief
* @return INPUT_BARTYPE
* OUTPUT_BARTYPE
*/
int GetBarType() const;
/**
* @brief stepID
* @return stepID
*/
int GetStepID() const;
private:
/**
* @brief
* @param[in] pPainter
* @param[in] pOption
* @param[in] pWidget
*/
virtual void paint(QPainter *pPainter,
const QStyleOptionGraphicsItem *pOption,
QWidget *pWidget = NULL);
private:
qreal m_width; ///< 进度条宽度
qreal m_height; ///< 进度条高度
QColor m_BeforeColor; ///< 进度条渐变色
QColor m_AfterColor; ///< 进度条渐变色
QColor m_FontColor; ///< 进度条字体颜色
QString m_BarText; ///< 进度条文本
QString m_VeryText; ///< 速度文本
QString m_TopText; ///< 进度条上部文本
int m_BarType; ///< 进度条类型
int m_StepID; ///< 进度条所属模块的stepID
};
}
}
#endif ///< PAI_FRAME_WORKFLOWWIDGET_MODULEPROGRESSGRAPHICSITEM_H