QtCanpool 3.3.0
载入中...
搜索中...
未找到
ribboncustomizedata.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxribbon_global.h"
9#include "ribbongroup.h"
10
11#include <QList>
12
14
15class RibbonBar;
16
22{
23public:
39public:
41 RibbonCustomizeData(ActionType type, RibbonActionsManager *mgr = Q_NULLPTR);
42
43 // 获取CustomizeData的action type
44 ActionType actionType() const;
45
46 // 设置CustomizeData的action type
47 void setActionType(ActionType a);
48
49 // 判断是否是一个正常的CustomizeData
50 bool isValid() const;
51
52 // 应用RibbonCustomizeData
53 bool apply(RibbonBar *bar);
54
55 // 获取actionsmanager指针
56 RibbonActionsManager *actionsManager();
57
58 // 设置ActionsManager
59 void setActionsManager(RibbonActionsManager *mgr);
60
61 // 对应AddPageActionType
62 static RibbonCustomizeData makeAddPageCustomizeData(const QString &title, int index, const QString &objName);
63
64 // 对应AddGroupActionType
65 static RibbonCustomizeData makeAddGroupCustomizeData(const QString &title, int index, const QString &pageObjName,
66 const QString &objName);
67
68 // 对应AddActionActionType
69 static RibbonCustomizeData makeAddActionCustomizeData(const QString &key, RibbonActionsManager *mgr,
70 RibbonGroup::RowProportion rp, const QString &pageObjName,
71 const QString &groupObjName);
72
73 // 对应RenamePageActionType
74 static RibbonCustomizeData makeRenamePageCustomizeData(const QString &newName, const QString &pageObjName);
75
76 // 对应RenameGroupActionType
77 static RibbonCustomizeData makeRenameGroupCustomizeData(const QString &newName, const QString &pageObjName,
78 const QString &groupObjName);
79
80 // 对应RemovePageActionType
81 static RibbonCustomizeData makeRemovePageCustomizeData(const QString &pageObjName);
82
83 // 对应ChangePageOrderActionType
84 static RibbonCustomizeData makeChangePageOrderCustomizeData(const QString &pageObjName, int moveIndex);
85
86 // 对应ChangeGroupOrderActionType
87 static RibbonCustomizeData makeChangeGroupOrderCustomizeData(const QString &pageObjName,
88 const QString &groupObjName, int moveIndex);
89
90 // 对应ChangeActionOrderActionType
91 static RibbonCustomizeData makeChangeActionOrderCustomizeData(const QString &pageObjName,
92 const QString &groupObjName, const QString &key,
93 RibbonActionsManager *mgr, int moveIndex);
94
95 // 对应RemoveGroupActionType
96 static RibbonCustomizeData makeRemoveGroupCustomizeData(const QString &pageObjName, const QString &groupObjName);
97
98 // 对应RemoveActionActionType
99 static RibbonCustomizeData makeRemoveActionCustomizeData(const QString &pageObjName, const QString &groupObjName,
100 const QString &key, RibbonActionsManager *mgr);
101
102 // 对应VisiblePageActionType
103 static RibbonCustomizeData makeVisiblePageCustomizeData(const QString &pageObjName, bool isShow);
104
105 // 判断是否可以自定义,如果某个action不想被编辑,可以通过此函数设置
106 static bool isCanCustomize(QObject *obj);
107 static void setCanCustomize(QObject *obj, bool canbe = true);
108
109 // 对QList<RibbonCustomizeData>进行简化
110 static QList<RibbonCustomizeData> simplify(const QList<RibbonCustomizeData> &csd);
111public:
120
128 QString keyValue;
129
134
139
142private:
143 ActionType m_type;
144 RibbonActionsManager *m_actionsManager;
145 bool customized;
146};
147
148typedef QList<RibbonCustomizeData> RibbonCustomizeDataList;
149
151
用于管理 Ribbon 的所有 Action
RibbonBar 继承 QMenuBar, 在 RibbonWindow 中直接替换了原来的 QMenuBar
Definition ribbonbar.h:99
记录所有自定义操作的数据类
int indexValue
记录顺序的参数
QString pageObjNameValue
记录pageObjName,用于定位Page
@ RemoveGroupActionType
删除group操作
@ VisiblePageActionType
对page执行隐藏/显示操作
@ ChangePageOrderActionType
改变page顺序的操作
@ AddActionActionType
添加action操作
@ RenamePageActionType
对page更名操作
@ RenameGroupActionType
对Group更名操作
@ ChangeActionOrderActionType
改变action顺序的操作
@ ChangeGroupOrderActionType
改变group顺序的操作
@ RemoveActionActionType
删除action操作
QString keyValue
记录标题、索引等参数
QString groupObjNameValue
记录groupObjName,ribbon的Customize索引大部分基于objname
RibbonGroup::RowProportion actionRowProportionValue
QList< RibbonCustomizeData > RibbonCustomizeDataList
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE
#define QX_RIBBON_PREPEND_NAMESPACE(name)