|
QtCanpool 3.3.0
|
用于管理 Ribbon 的所有 Action 更多...
#include <qxribbon/ribbonactionsmanager.h>

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 行定义.
定义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 行定义.
| QxRibbon::RibbonActionsManager::RibbonActionsManager | ( | RibbonBar * | bar | ) |
在文件 ribbonactionsmanager.cpp 第 47 行定义.
| QxRibbon::RibbonActionsManager::~RibbonActionsManager | ( | ) |
在文件 ribbonactionsmanager.cpp 第 54 行定义.
| QAction * QxRibbon::RibbonActionsManager::action | ( | const QString & | key | ) | const |
| QList< QAction * > QxRibbon::RibbonActionsManager::actions | ( | int | tag | ) | const |
| void QxRibbon::RibbonActionsManager::actionTagChanged | ( | int | tag, |
| bool | isDeleted | ||
| ) |
标签变化触发的信号,变化包括新增和删除
| QList< int > QxRibbon::RibbonActionsManager::actionTags | ( | ) | const |
| QList< QAction * > QxRibbon::RibbonActionsManager::allActions | ( | ) | const |
| 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 |
在文件 ribbonactionsmanager.cpp 第 307 行定义.
| QSet< QAction * > QxRibbon::RibbonActionsManager::autoRegisterWidgetActions | ( | QWidget * | w, |
| int | tag, | ||
| bool | enableEmit = false |
||
| ) |
自动加载action
| w | |
| tag | |
| enableEmit |
在文件 ribbonactionsmanager.cpp 第 363 行定义.
| void QxRibbon::RibbonActionsManager::clear | ( | ) |
在文件 ribbonactionsmanager.cpp 第 409 行定义.
| int QxRibbon::RibbonActionsManager::count | ( | ) | const |
| QString QxRibbon::RibbonActionsManager::key | ( | QAction * | act | ) | const |
| void QxRibbon::RibbonActionsManager::onActionDestroyed | ( | QObject * | o | ) |
action 被delete时,将触发此槽把管理的action删除
| o |
在文件 ribbonactionsmanager.cpp 第 437 行定义.
| void QxRibbon::RibbonActionsManager::onPageTitleChanged | ( | const QString & | title | ) |
| bool QxRibbon::RibbonActionsManager::registerAction | ( | QAction * | act, |
| int | tag, | ||
| const QString & | key = QString(), |
||
| bool | enableEmit = true |
||
| ) |
把action注册到管理器中,实现action的管理
| act | |
| tag | tag是可以按照位进行叠加,见 ActionTag 如果 要定义自己的标签,建议定义大于 ActionTag::UserDefineActionTag 的值, registerAction的tag是直接记录进去的,如果要多个标签并存,在registe之前先或好tag |
| key | key是action对应的key,一个key只对应一个action,是查找action的关键 ,默认情况为一个QString(),这时key是QAction的objectName |
| enableEmit | 是否发射 actionTagChanged 信号 |
在文件 ribbonactionsmanager.cpp 第 130 行定义.
| void QxRibbon::RibbonActionsManager::removeTag | ( | int | tag | ) |
| RibbonBar * QxRibbon::RibbonActionsManager::ribbonBar | ( | ) | const |
在文件 ribbonactionsmanager.cpp 第 415 行定义.
| QList< QAction * > QxRibbon::RibbonActionsManager::search | ( | const QString & | text | ) |
| void QxRibbon::RibbonActionsManager::setAllActionCanCustomize | ( | bool | on = true | ) |
| void QxRibbon::RibbonActionsManager::setTagName | ( | int | tag, |
| const QString & | name | ||
| ) |
设置tag对应的名字,通过这个可以得到tag和文本的映射
| tag | |
| name |
在文件 ribbonactionsmanager.cpp 第 65 行定义.
| QString QxRibbon::RibbonActionsManager::tagName | ( | int | tag | ) | const |
| void QxRibbon::RibbonActionsManager::unregisterAction | ( | QAction * | act, |
| bool | enableEmit = true |
||
| ) |
取消action的注册
如果tag对应的最后一个action被撤销,tag也将一块删除
| act | |
| enableEmit | 是否发射 actionTagChanged 信号 |
在文件 ribbonactionsmanager.cpp 第 171 行定义.
|
friend |
在文件 ribbonactionsmanager.h 第 130 行定义.