/** * @file PaiJobParameterItem.h * @brief 作业参数信息 * @date 2013-04-20 */ #ifndef PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEM_H #define PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEM_H #include #include class QWidget; namespace pai { namespace gui { class PaiJobParameterItemWidget; } } namespace pai { namespace gui { /** * @class PaiJobParameterItem * @brief 作业信息item */ class PaiJobParameterItem : public QGraphicsItem { public: /** * @brief item类型 */ enum { Type = UserType + 1457 ///< item类型 }; /** * @brief 构造函数 * @param[in] pParent 父亲 */ PaiJobParameterItem(QGraphicsItem *pParent = NULL); /** * @brief 析构函数 */ virtual ~PaiJobParameterItem(); /** * @brief item类型 * @return item类型 */ virtual int type() const; /** * @brief 实现该虚函数,返回模块图元的包围矩形 * @return item外围矩形 */ virtual QRectF boundingRect() const; /** * @brief 更新位置 */ void UpdatePosition(); /** * @brief 获取item的代理对话框 * @return item的代理对话框 */ pai::gui::PaiJobParameterItemWidget* GetWidget() const; protected: /** * @brief 重写该虚函数,实现鼠标进入覆盖操作 * @param[in] pEvent 鼠标hoverEnter事件 */ virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *pEvent); /** * @brief 重写该虚函数,实现鼠标覆盖离开操作 * @param[in] pEvent 鼠标hoverLeave事件 */ virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *pEvent); private: /** * @brief 实现该虚函数,绘制作业信息展示item * @param[in] pPainter 画笔 * @param[in] pOption 模块风格参数 * @param[in] pWidget 画布 */ virtual void paint(QPainter *pPainter, const QStyleOptionGraphicsItem *pOption, QWidget *pWidget = NULL); private: bool m_flag; ///< 进入标志 qreal m_width; ///< 宽度 qreal m_height; ///< 高度 pai::gui::PaiJobParameterItemWidget *m_pParameItemWidget; ///< 代理widget }; } } #endif ///< PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEM_H