/* * PaiPushButton.h * * Created on: 2012-1-31 * Author: dev */ #ifndef PAI_FRAME_WIDGET_PAIPUSHBUTTON_H #define PAI_FRAME_WIDGET_PAIPUSHBUTTON_H #include #include "Turtle.h" namespace pai { namespace gui { /** * @class PaiPushButton * @brief PaiPushButton是P.A.I系统定制发布的按钮 */ class PAI_WIDGET_EXPORT PaiPushButton : public QPushButton { Q_OBJECT public: /** * @brief 析构函数 */ virtual ~PaiPushButton(); /** * @brief 构造函数 * @param[in] pParent 父窗口句柄 */ PaiPushButton(QWidget *pParent = NULL); /** * @brief 构造函数 * @param[in] text 按鈕文本 * @param[in] pParent 父窗口句柄 */ PaiPushButton(const QString & text, QWidget *pParent = NULL); /** * @brief 构造函数 * @param[in] icon 按鈕图标 * @param[in] text 按钮文本 * @param[in] pParent 父窗口句柄 */ PaiPushButton(const QIcon & icon, const QString & text, QWidget *pParent = NULL); /** * @brief 设置为可弹出窗口器件的按鈕 * @param[in] pPopupCenterWidget 弹出窗口器件 */ void SetPopupWidget(QWidget *pPopupCenterWidget); public slots: /** * @brief 关闭已弹出窗口器件 */ void ClosePopupWidget(); protected: /** * @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: QWidget *m_pPopupWidget; ///< 弹出窗口器件对象 QWidget *m_pPopupFrame; ///< 弹出窗口器件的容器对象 }; } } #endif ///< PAI_FRAME_WIDGET_PAIPUSHBUTTON_H