/** * @file PaiWidgetAction.h * @brief PAI自定义的WidgetAction * @date 2012-11-30 */ #ifndef PAI_FRAME_WIDGET_PAIWIDGETACTION_H #define PAI_FRAME_WIDGET_PAIWIDGETACTION_H #include #include "Turtle.h" namespace pai { namespace gui { /** * @class PaiHorizonGroupWidget * @brief PAI自定义的水平组合类 */ class PAI_WIDGET_EXPORT PaiHorizonGroupWidget : public QWidget { Q_OBJECT public: /** * @brief 构造函数 * @param[in] pFirstWidget 第一个Widget * @param[in] pSecondWidget 第二个Widget * @param[in] spacing 间隔 * @param[in] pParent 父窗口句柄 */ PaiHorizonGroupWidget(QWidget *pFirstWidget, QWidget *pSecondWidget, int spacing = 0, QWidget *pParent = NULL); /** * @brief 析构函数 */ virtual ~PaiHorizonGroupWidget(); }; /** * @class PaiWidgetAction * @brief PAI自定义的WidgetAction基类 */ class PAI_WIDGET_EXPORT PaiWidgetAction : public QWidgetAction { Q_OBJECT public: /** * @brief 构造函数 * @param[in] pParent 父窗口句柄 */ PaiWidgetAction(QObject *pParent = NULL); /** * @brief 创建控件,需要子类实现 * @param[in] pParent 父窗口句柄 * @return 返回创建控件指针 */ virtual QWidget* NewWidget(QWidget *pParent) = 0; /** * @brief 关联信号,由子类决定是否需要实现 * @param[in] pWidget 一般是NewWidget返回的控件指针 */ virtual void ConnectSignals(QWidget *pWidget); /** * @brief 获得默认控件指针,即第一个创建出来的工具栏上的,而不是扩展菜单中的。 * @return 返回默认控件指针 */ QWidget* GetDefaultWidget() const; protected: /** * @brief 重写createWidget * @param[in] pParent 父窗口句柄 */ virtual QWidget* createWidget(QWidget *pParent); private: QWidget *m_pDefaultWidget; ///< 默认控件指针,即第一个创建出来的工具栏上的,而不是扩展菜单中的。 }; } } #endif ///< PAI_FRAME_WIDGET_PAIWIDGETACTION_H