QtCanpool 3.3.0
载入中...
搜索中...
未找到
ribbonactionsmanager.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxribbon_global.h"
8
9#include <QAbstractListModel>
10#include <QAction>
11#include <QMap>
12#include <QObject>
13#include <QSet>
14#include <QString>
15
17
18class RibbonBar;
19class RibbonPage;
20class RibbonActionsManagerPrivate;
21
46{
47 Q_OBJECT
48public:
52 enum ActionTag {
53 UnknowActionTag = 0,
54 CommonlyUsedActionTag = 0x01,
55 NotInFunctionalAreaActionTag = 0x02,
56 AutoPageDistinguishBeginTag = 0x1000,
57 AutoPageDistinguishEndTag = 0x2000,
58 NotInRibbonPageTag = 0x2001,
60 UserDefineActionTag = 0x8000,
61 };
62public:
65
66 // 设置tag对应的名字
67 void setTagName(int tag, const QString &name);
68
69 // 获取tag对应的名字
70 QString tagName(int tag) const;
71
72 // 移除tag,注意,这个函数非常耗时
73 void removeTag(int tag);
74
75 // 注册action
76 bool registerAction(QAction *act, int tag, const QString &key = QString(), bool enableEmit = true);
77
78 // 取消action的注册
79 void unregisterAction(QAction *act, bool enableEmit = true);
80
81 // 通过tag筛选出系列action
82 QList<QAction *> actions(int tag) const;
83
84 // 获取所有的标签
85 QList<int> actionTags() const;
86
87 // 通过key获取action
88 QAction *action(const QString &key) const;
89
90 // 通过action找到key
91 QString key(QAction *act) const;
92
93 // 返回所有管理的action数
94 int count() const;
95
96 // 返回所有管理的actions
97 QList<QAction *> allActions() const;
98
99 // 自动加载RibbonBar下的actions
100 QMap<int, RibbonPage *> autoRegisterActions(RibbonBar *bar);
101
102 // 自动加载widget下的actions
103 QSet<QAction *> autoRegisterWidgetActions(QWidget *w, int tag, bool enableEmit = false);
104
105 // 根据标题查找action
106 QList<QAction *> search(const QString &text);
107
108 // 清除
109 void clear();
110
111 // 获取ribbonbar
112 RibbonBar *ribbonBar() const;
113
114 // 设置所有管理的action都可以编辑
115 void setAllActionCanCustomize(bool on = true);
116
117Q_SIGNALS:
121 void actionTagChanged(int tag, bool isDeleted);
122
123private Q_SLOTS:
124 void onActionDestroyed(QObject *o);
125 void onPageTitleChanged(const QString &title);
126private:
127 void removeAction(QAction *act, bool enableEmit = true);
128private:
131};
132
用于管理 Ribbon 的所有 Action
void actionTagChanged(int tag, bool isDeleted)
标签变化触发的信号,变化包括新增和删除
RibbonBar 继承 QMenuBar, 在 RibbonWindow 中直接替换了原来的 QMenuBar
Definition ribbonbar.h:99
#define QX_DECLARE_PRIVATE(Class)
#define QX_RIBBON_EXPORT
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE
const char * name
Definition qxtheme.cpp:25
QColor text