logplus/Workflow/WFEngine/Component/WorkflowWidget/include/PaiJobParameterItemWidget.h
2026-01-16 17:18:41 +08:00

168 lines
3.8 KiB
C++

/**
* @file PaiJobParameterItemWidget.h
* @brief 日志中参数设置界面
* @date 2013-04-18
*/
#ifndef PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEMWIDGET_H
#define PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEMWIDGET_H
#include <QWidget>
#include <QTextEdit>
class QMouseEvent;
class QPushButton;
class QLabel;
namespace pai
{
namespace gui
{
/**
* @enum Direction
* @brief 拖拽方向枚举类型
*/
enum Direction
{
NONE = 0x00, ///< 默认
RIGHT= 0x01, ///< 向右
DOWN = 0x02, ///< 向下
RIGHTBOTTOM = 0x03 ///< 右下
};
/**
* @class PaiParameTextEdit
* @brief 日志信息显示编辑框,实现在光标移动到边界的时候光标图标没有变化情况
*/
class PaiParameTextEdit : public QTextEdit
{
public:
/**
* @brief 构造函数
* @param[in] pParent 父亲
*/
PaiParameTextEdit(QWidget *pParent = NULL);
/**
* @brief 析构函数
*/
virtual ~PaiParameTextEdit();
protected:
/**
* @brief 重载eventFilter用于拦截滑动条鼠标滑动事件,改变鼠标滑动样式(32192)
* @param[in] pObj 被监控对象
* @param[in] pEvent 事件
*/
virtual bool eventFilter(QObject *pObj, QEvent *pEvent);
};
/**
* class PaiJobParameterItemWidget
* @brief 日志中参数设置界面类
*/
class PaiJobParameterItemWidget : public QWidget
{
Q_OBJECT
public:
/**
* @brief 构造函数
* @param[in] pParent 父亲
*/
PaiJobParameterItemWidget(QWidget *pParent = NULL);
/**
* @brief 析构函数
*/
virtual ~PaiJobParameterItemWidget();
/**
* @brief 设置参数编辑框信息
* @param[in] text 文本信息
*/
void SetParamEditInfo(const QString& text);
/**
* @brief 获取鼠标是否进入widget
* @return 进入标志
*/
bool GetMouseEnterWidgetFlag() const;
/**
* @brief 获取widget 是否被固定标记
* @return 固定位置标志
*/
bool GetFixWidgetPosFlag() const;
protected:
/**
* @brief 重写鼠标进入函数
* @param[in] pEvent 鼠标进入事件指针
*/
virtual void enterEvent(QEvent *pEvent);
/**
* @brief 重写鼠标离开函数
* @param[in] pEvent 鼠标离开事件指针
*/
virtual void leaveEvent(QEvent *pEvent);
/**
* @brief 重写鼠标移动函数
* @param[in] pEvent 鼠标移动事件指针
*/
virtual void mouseMoveEvent(QMouseEvent *pEvent);
/**
* @brief 重写鼠标按下函数
* @param[in] pEvent 鼠标按下事件指针
*/
virtual void mousePressEvent(QMouseEvent *pEvent);
/**
* @brief 重写鼠标释放函数
* @param[in] pEvent 鼠标释放事件指针
*/
virtual void mouseReleaseEvent(QMouseEvent *pEvent);
/**
* @brief 绘制函数
* @param[in] pEvent 绘制事件
*/
virtual void paintEvent(QPaintEvent *pEvent) ;
private:
/**
* @brief 设置界面布局
*/
void SetWidgetLayout();
/**
* @brief 设置区域拖拽光标变化
* @param[in] cursorGlobalPoint 鼠标位置
*/
void SetRegionCursorShape(const QPoint &cursorGlobalPoint);
private slots:
/**
* @brief 固定窗口
* @param[in] fixed 是否固定窗口
*/
void FixTheWidget(bool fixed);
private:
QLabel *m_pLable; ///< 标题
PaiParameTextEdit *m_pParamInfoTextEdit; ///< 信息显示控件
QPushButton *m_pBtn; ///< 按钮
bool m_press; ///< 按压标志
bool m_EnterFlag; ///< 进入标志
bool m_fixed; ///< 固定标志
QPoint m_DragPosition; ///< 抓取位置
Direction m_direction; ///< 方向
};
}
}
#endif ///< PAI_FRAME_WORKFLOWWIDGET_PAIJOBPARAMETERITEMWIDGET_H