168 lines
3.8 KiB
C++
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
|