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

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