logplus/Workflow/WFWidget/include/PaiToolButton.h
2026-01-17 12:55:45 +08:00

77 lines
1.6 KiB
C++

/**
* @file PaiToolButton.h
* @brief PaiToolButton是P.A.I系统定制发布的工具按钮
* @date 2012-1-31
*/
#ifndef PAI_FRAME_WIDGET_PAITOOLBUTTON_H
#define PAI_FRAME_WIDGET_PAITOOLBUTTON_H
#include <QToolButton>
#include "Turtle.h"
namespace pai
{
namespace gui
{
/**
* @class PaiToolButton
* @brief PaiToolButton是P.A.I系统定制发布的工具按钮
*/
class PAI_WIDGET_EXPORT PaiToolButton : public QToolButton
{
Q_OBJECT
public:
/**
* @brief 析构函数
*/
virtual ~PaiToolButton();
/**
* @brief 构造函数
* @param[in] pParent 父窗口句柄
*/
PaiToolButton(QWidget *pParent = NULL);
/**
* @brief 构造函数
* @param[in] icon 按鈕图标
* @param[in] pParent 父窗口句柄
*/
PaiToolButton(const QIcon & icon, QWidget *pParent = NULL);
/**
* @brief 设置为可弹出窗口器件的按鈕
* @param[in] pPopupCenterWidget 弹出窗口器件
*/
void SetPopupWidget(QWidget *pPopupCenterWidget);
protected:
/**
* @brief 重载鼠标按下事件
* @param[in] pEvent 按下鼠标事件参数
*/
virtual void mousePressEvent(QMouseEvent *pEvent);
/**
* @brief 重载绘制事件
* @param[in] pEvent 绘制事件参数
*/
virtual void paintEvent(QPaintEvent *pEvent);
/**
* @brief 鼠标进入事件
* @param[in] pEvent 进入事件参数
*/
virtual void enterEvent(QEvent *pEvent);
private:
QWidget *m_pPopupWidget; ///< 弹出窗口器件对象
QWidget *m_pPopupFrame; ///< 弹出窗口器件的容器对象
};
}
}
#endif ///< PAI_FRAME_WIDGET_PAITOOLBUTTON_H