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

110 lines
2.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file PaiMenuToolBar.h
* @brief 菜单栏组件
* @date 2011-08-23
*/
#ifndef PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H
#define PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H
#include <QMenu>
#include "PaiToolBar.h"
#include "Turtle.h"
namespace pai
{
namespace gui
{
class MenuToolButton;
}
}
namespace pai
{
namespace gui
{
/**
* @class PaiMenuToolBar
* @brief P.A.I系统的插件的内容区通常有一个带菜单的工具栏这个类定制了这种工具栏
*/
class PAI_WIDGET_EXPORT PaiMenuToolBar:public pai::gui::PaiToolBar
{
Q_OBJECT
public:
/**
* @brief 构造函数
* @param[in] title 标题
* @param[in] pParent 父窗口句柄
*/
PaiMenuToolBar(const QString & title,QWidget *pParent);
/**
* @brief 析构函数
*/
virtual ~PaiMenuToolBar();
/**
* @brief 得到菜单句柄
* @return 菜单
*/
QMenu* GetMenu() const;
/**
* @brief 得到视图菜单句柄
* @return 视图菜单句柄
*/
QMenu* GetViewsMenu() const;
/**
* @brief 设置工具栏按钮可见性
* @param[in] flag 工具栏按钮是否可见
*/
void setMenuButtonVisible(bool flag);
/**
* @brief 向视图菜单中添加菜单项
* @param[in] name 区域名
* @param[in] viewID 菜单对应视图ID
*/
void AddViewsMenuAction(QString & name, std::string viewID);
/**
* @brief 设置菜单选中状态
* @param[in] viewID 菜单对应视图ID
* @param[in] checked 菜单选中状态
*/
void SetViewMenuChecked(const QString & viewID, bool checked);
/**
* @brief 清空Menu列表内容
* @param[in] isVisible 是否显示Menu控件
*/
void Clear(bool isVisible);
public slots:
/**
* @brief 关闭TabWidget
* @param[in] extensionID 关闭的ID
*/
void CloseTabWidget(const QString & extensionID);
protected:
/**
* @brief 绘制事件
* @param[in] pEvent 绘制事件
*/
virtual void paintEvent(QPaintEvent *pEvent);
private:
QMenu *m_pRootMenu; ///< 根菜单
QMenu *m_pViewsMenu; ///< 视图菜单栏
MenuToolButton *m_pMenuButton; ///< 菜单按钮
QAction *m_pMenuButtonAct;///< 菜单Action
};
}
}
#endif ///< PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H