87 lines
2.0 KiB
C++
87 lines
2.0 KiB
C++
/**
|
|
* @file PaiWidgetAction.h
|
|
* @brief PAI自定义的WidgetAction
|
|
* @date 2012-11-30
|
|
*/
|
|
#ifndef PAI_FRAME_WIDGET_PAIWIDGETACTION_H
|
|
#define PAI_FRAME_WIDGET_PAIWIDGETACTION_H
|
|
|
|
#include <QWidgetAction>
|
|
#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
|