logplus/Workflow/WFWidget/include/PaiToolBar.h

128 lines
3.5 KiB
C
Raw Normal View History

2026-01-17 12:55:45 +08:00
/**
* @file PaiToolBar.h
* @brief
* @date 2011-9-16
*/
#ifndef PAI_FRAME_WIDGET_PAITOOLBAR_H
#define PAI_FRAME_WIDGET_PAITOOLBAR_H
#include <QToolBar>
#include <QWidgetAction>
#include "Turtle.h"
/**
* @brief BEGIN_PAITOOLBAR_WIDGET这个宏为自定义控件创建QWidgetAction END_PAITOOLBAR_WIDGET使用
* @param[out] pWidget QAction指针
* @param[in] pObject1 Action的指针,使NULL使R1R2变量
* @param[in] pObject2 Action的指针
*/
#define BEGIN_PAITOOLBAR_WIDGET(pWidget, pObject1, pObject2) \
QAction *pWidget = NULL; \
{ \
QObject *pTmpReceiver1 = pObject1; \
QObject *pTmpReceiver2 = pObject2; \
class Local_Widget_Action : public QWidgetAction \
{ \
public: \
Local_Widget_Action(QObject *pReceiver1, QObject *pReciever2, QObject *pParent = NULL) : \
QWidgetAction(pParent), \
pR1(pReceiver1), \
pR2(pReciever2){} \
virtual QWidget* createWidget(QWidget *pParent) {
/**
* @brief QWidgetAction
* @param[out] pWidget QAction指针
*/
#define END_PAITOOLBAR_WIDGET(pWidget) \
pWidget->setParent(pParent); \
return pWidget;} \
QObject *pR1, pR2; \
}* pAction = new Local_Widget_Action (pTmpReceiver1, pTmpReceiver2); \
pWidget = pAction; \
}
namespace pai
{
namespace gui
{
/**
* @class PaiToolBar
* @brief P.A.I
*/
class PAI_WIDGET_EXPORT PaiToolBar : public QToolBar
{
public:
/**
* @brief
* @param[in] pParent
*/
PaiToolBar(QWidget *pParent = NULL);
/**
* @brief
* @param[in] title
* @param[in] pParent
*/
PaiToolBar(const QString & title, QWidget *pParent = NULL);
/**
* @brief
*/
virtual ~PaiToolBar();
/**
* @brief
* @param[in] top
* @param[in] bottom
* @param[in] left
* @param[in] right
*/
void ShowBorder(bool top, bool bottom, bool left, bool right);
/**
* @brief 使QAction靠右
* @return QActionUnregister
*/
QAction* AddSpacer();
/**
* @brief
* @param[in] margin
*/
void SetLeftMargin(int margin);
/**
* @brief space
* @param[in] space 4
* @return Action
*/
QAction* AddConstSpace(int space = 4);
protected:
/**
* @brief ToolBar
* @param[in] pEvent
*/
virtual void paintEvent(QPaintEvent *pEvent);
private:
/**
* @brief ToolBar
*/
void InitToolBar();
private:
bool m_ShowTopEdge; ///< 显示上方边界
bool m_ShowBottomEdge; ///< 显示下方边界
bool m_ShowLeftEdge; ///< 显示左方边界
bool m_ShowRightEdge; ///< 显示右方边界
QWidget *m_pLeftMarginWgt; ///< 用来支撑left margin
};
}
}
#endif ///< PAI_FRAME_WIDGET_PAITOOLBAR_H