QtCanpool 3.3.0
载入中...
搜索中...
未找到
QxRibbon::RibbonActionsManager类 参考

用于管理 Ribbon 的所有 Action 更多...

#include <qxribbon/ribbonactionsmanager.h>

类 QxRibbon::RibbonActionsManager 继承关系图:

Public 类型

enum  ActionTag {
  UnknowActionTag = 0 , CommonlyUsedActionTag = 0x01 , NotInFunctionalAreaActionTag = 0x02 , AutoPageDistinguishBeginTag = 0x1000 ,
  AutoPageDistinguishEndTag = 0x2000 , NotInRibbonPageTag = 0x2001 , UserDefineActionTag = 0x8000
}
 定义action的标签 更多...
 

Public 成员函数

 RibbonActionsManager (RibbonBar *bar)
 
 ~RibbonActionsManager ()
 
void setTagName (int tag, const QString &name)
 设置tag对应的名字,通过这个可以得到tag和文本的映射
 
QString tagName (int tag) const
 获取tag对应的中文名字
 
void removeTag (int tag)
 移除tag
 
bool registerAction (QAction *act, int tag, const QString &key=QString(), bool enableEmit=true)
 把action注册到管理器中,实现action的管理
 
void unregisterAction (QAction *act, bool enableEmit=true)
 取消action的注册
 
QList< QAction * > actions (int tag) const
 根据tag得到actions
 
QList< int > actionTags () const
 获取所有的标签
 
QAction * action (const QString &key) const
 通过key获取action
 
QString key (QAction *act) const
 通过action找到key
 
int count () const
 返回所有管理的action数
 
QList< QAction * > allActions () const
 返回所有管理的actions
 
QMap< int, RibbonPage * > autoRegisterActions (RibbonBar *bar)
 自动加载RibbonBar的action 此函数会遍历RibbonBar 下的所有子object,找到action注册, 并会遍历所有RibbonPage,把RibbonPage下的action按RibbonPage的title name进行分类
 
QSet< QAction * > autoRegisterWidgetActions (QWidget *w, int tag, bool enableEmit=false)
 自动加载action
 
QList< QAction * > search (const QString &text)
 根据标题查找action
 
void clear ()
 
RibbonBar * ribbonBar () const
 
void setAllActionCanCustomize (bool on=true)
 此函数用于设置所有管理的action都可以自定义编辑
 
void actionTagChanged (int tag, bool isDeleted)
 标签变化触发的信号,变化包括新增和删除
 
void onActionDestroyed (QObject *o)
 action 被delete时,将触发此槽把管理的action删除
 
void onPageTitleChanged (const QString &title)
 autoRegisteActions函数会关联此槽,在标签内容改变时改变tag 对应 文本
 

友元

class RibbonActionsManagerModel
 

详细描述

用于管理 Ribbon 的所有 Action

RibbonActionsManager 维护着两个表,一个是 tag(标签)对应的 Action list, 一个是所有接受 RibbonActionsManager 管理的 action list。

RibbonActionsManager 的标签对应一组 actions,每个标签对应的 action 可以重复出现, 但 RibbonActionsManager 维护的 action list 里只有一份 action,不会重复出现。

tag 用于对 action list 分组,每个 tag 的实体名字通过 setTagName 进行设置,在语言变化时需要及时调用 setTagName 设置新的标签对应的文本。

RibbonActionsManager 默认预设了6个常用标签见 RibbonActionsManager::ActionTag ,用户自定义标签需要在 RibbonActionsManager::UserDefineActionTag 值的基础上进行累加。

RibbonActionsManager::actions 函数用于提取标签管理的 action list, allActions 函数返回 RibbonActionsManager 管理的所有标签。

通过 autoRegisterActions 函数可以快速的建立 action 的管理,此函数会遍历 RibbonBar 下的所有子 object, 同时遍历 RibbonBar 下所有 RibbonGroup 添加的 action, 并给予 Page 建立 tag,正常使用用户仅需关注此 autoRegisterActions 函数即可

在文件 ribbonactionsmanager.h 第 45 行定义.

成员枚举类型说明

◆ ActionTag

定义action的标签

枚举值
UnknowActionTag 

未知的tag

CommonlyUsedActionTag 

预设tag-常用命令

NotInFunctionalAreaActionTag 

预设tag-不在功能区命令

AutoPageDistinguishBeginTag 

自动按Page划分的标签起始,在 autoRegisterActions 函数会用到

AutoPageDistinguishEndTag 

自动按Page划分的标签结束,在 autoRegisterActions 函数会用到

NotInRibbonPageTag 

不在功能区的标签autoRegisterActions 函数会遍历所有page的action以及RibbonBar下的action,如果两个

UserDefineActionTag 

自定义标签,所有用户自定义tag要大于此tag

在文件 ribbonactionsmanager.h 第 52 行定义.

构造及析构函数说明

◆ RibbonActionsManager()

QxRibbon::RibbonActionsManager::RibbonActionsManager ( RibbonBar *  bar)

在文件 ribbonactionsmanager.cpp 第 47 行定义.

◆ ~RibbonActionsManager()

QxRibbon::RibbonActionsManager::~RibbonActionsManager ( )

在文件 ribbonactionsmanager.cpp 第 54 行定义.

成员函数说明

◆ action()

QAction * QxRibbon::RibbonActionsManager::action ( const QString &  key) const

通过key获取action

参数
key
返回
如果没有key,返回Q_NULLPTR

在文件 ribbonactionsmanager.cpp 第 256 行定义.

◆ actions()

QList< QAction * > QxRibbon::RibbonActionsManager::actions ( int  tag) const

根据tag得到actions

参数
tag
返回

在文件 ribbonactionsmanager.cpp 第 235 行定义.

◆ actionTagChanged()

void QxRibbon::RibbonActionsManager::actionTagChanged ( int  tag,
bool  isDeleted 
)

标签变化触发的信号,变化包括新增和删除

◆ actionTags()

QList< int > QxRibbon::RibbonActionsManager::actionTags ( ) const

获取所有的标签

返回

在文件 ribbonactionsmanager.cpp 第 245 行定义.

◆ allActions()

QList< QAction * > QxRibbon::RibbonActionsManager::allActions ( ) const

返回所有管理的actions

返回

在文件 ribbonactionsmanager.cpp 第 287 行定义.

◆ autoRegisterActions()

QMap< int, RibbonPage * > QxRibbon::RibbonActionsManager::autoRegisterActions ( RibbonBar *  bar)

自动加载RibbonBar的action 此函数会遍历RibbonBar 下的所有子object,找到action注册, 并会遍历所有RibbonPage,把RibbonPage下的action按RibbonPage的title name进行分类

此函数会把所有page下的action生成tag并注册,返回的QMap<int, RibbonPage *>是记录了page对应的tag

此函数还会把RibbonBar下面的action,但不在任何一个page下的作为NotInRibbonPageTag标签注册,默认名字会赋予not in ribbon, 可以通过setTagName 改变

参数
bar
返回
注解
此函数的调用最好在page设置了标题后调用,因为会以page的标题作为标签的命名

在文件 ribbonactionsmanager.cpp 第 307 行定义.

◆ autoRegisterWidgetActions()

QSet< QAction * > QxRibbon::RibbonActionsManager::autoRegisterWidgetActions ( QWidget *  w,
int  tag,
bool  enableEmit = false 
)

自动加载action

参数
w
tag
enableEmit
返回
返回成功加入RibbonActionsManager管理的action

在文件 ribbonactionsmanager.cpp 第 363 行定义.

◆ clear()

void QxRibbon::RibbonActionsManager::clear ( )

在文件 ribbonactionsmanager.cpp 第 409 行定义.

◆ count()

int QxRibbon::RibbonActionsManager::count ( ) const

返回所有管理的action数

返回

在文件 ribbonactionsmanager.cpp 第 277 行定义.

◆ key()

QString QxRibbon::RibbonActionsManager::key ( QAction *  act) const

通过action找到key

参数
act
返回
如果找不到,返回QString()

在文件 ribbonactionsmanager.cpp 第 267 行定义.

◆ onActionDestroyed()

void QxRibbon::RibbonActionsManager::onActionDestroyed ( QObject *  o)

action 被delete时,将触发此槽把管理的action删除

参数
o
注解
这个函数不会触发actionTagChanged信号

在文件 ribbonactionsmanager.cpp 第 437 行定义.

◆ onPageTitleChanged()

void QxRibbon::RibbonActionsManager::onPageTitleChanged ( const QString &  title)

autoRegisteActions函数会关联此槽,在标签内容改变时改变tag 对应 文本

参数
title

在文件 ribbonactionsmanager.cpp 第 448 行定义.

◆ registerAction()

bool QxRibbon::RibbonActionsManager::registerAction ( QAction *  act,
int  tag,
const QString &  key = QString(),
bool  enableEmit = true 
)

把action注册到管理器中,实现action的管理

参数
act
tagtag是可以按照位进行叠加,见 ActionTag 如果 要定义自己的标签,建议定义大于 ActionTag::UserDefineActionTag 的值, registerAction的tag是直接记录进去的,如果要多个标签并存,在registe之前先或好tag
keykey是action对应的key,一个key只对应一个action,是查找action的关键 ,默认情况为一个QString(),这时key是QAction的objectName
enableEmit是否发射 actionTagChanged 信号
注解
同一个action多次注册不同的tag可以通过tag索引到action,但通过action只能索引到最后一个注册的tag
tag的新增会触发actionTagChanged信号

在文件 ribbonactionsmanager.cpp 第 130 行定义.

◆ removeTag()

void QxRibbon::RibbonActionsManager::removeTag ( int  tag)

移除tag

注解
注意,这个函数非常耗时
参数
tag

在文件 ribbonactionsmanager.cpp 第 87 行定义.

◆ ribbonBar()

RibbonBar * QxRibbon::RibbonActionsManager::ribbonBar ( ) const

在文件 ribbonactionsmanager.cpp 第 415 行定义.

◆ search()

QList< QAction * > QxRibbon::RibbonActionsManager::search ( const QString &  text)

根据标题查找action

参数
text
返回

在文件 ribbonactionsmanager.cpp 第 385 行定义.

◆ setAllActionCanCustomize()

void QxRibbon::RibbonActionsManager::setAllActionCanCustomize ( bool  on = true)

此函数用于设置所有管理的action都可以自定义编辑

参数
on

在文件 ribbonactionsmanager.cpp 第 424 行定义.

◆ setTagName()

void QxRibbon::RibbonActionsManager::setTagName ( int  tag,
const QString &  name 
)

设置tag对应的名字,通过这个可以得到tag和文本的映射

参数
tag
name
注解
在支持多语言的环境下,在语言切换时需要重新设置,以更新名字

在文件 ribbonactionsmanager.cpp 第 65 行定义.

◆ tagName()

QString QxRibbon::RibbonActionsManager::tagName ( int  tag) const

获取tag对应的中文名字

参数
tag
返回

在文件 ribbonactionsmanager.cpp 第 76 行定义.

◆ unregisterAction()

void QxRibbon::RibbonActionsManager::unregisterAction ( QAction *  act,
bool  enableEmit = true 
)

取消action的注册

如果tag对应的最后一个action被撤销,tag也将一块删除

参数
act
enableEmit是否发射 actionTagChanged 信号
注解
tag的删除会触发actionTagChanged信号
如果action关联了多个tag,这些tag里的action都会被删除,对应的key也同理

在文件 ribbonactionsmanager.cpp 第 171 行定义.

友元及相关函数文档

◆ RibbonActionsManagerModel

friend class RibbonActionsManagerModel
friend

在文件 ribbonactionsmanager.h 第 130 行定义.


该类的文档由以下文件生成: