130 lines
3.3 KiB
C++
130 lines
3.3 KiB
C++
/**
|
|
* @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
|