SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonCategory.h
1#ifndef SARIBBONCATEGORY_H
2#define SARIBBONCATEGORY_H
3#include "SARibbonGlobal.h"
4#include <QFrame>
5#include "SARibbonPanel.h"
6#include <QScopedPointer>
7#include <QPushButton>
8#include <QWheelEvent>
9
10class QAction;
11class QHBoxLayout;
12class QWheelEvent;
13class SARibbonBar;
15
31class SA_RIBBON_EXPORT SARibbonCategory : public QFrame
32{
33 Q_OBJECT
34 SA_RIBBON_DECLARE_PRIVATE(SARibbonCategory)
35 friend class SARibbonBar;
36 friend class SARibbonContextCategory;
37 Q_PROPERTY(bool isCanCustomize READ isCanCustomize WRITE setCanCustomize)
38 Q_PROPERTY(QString categoryName READ categoryName WRITE setCategoryName)
39public:
40 using FpPanelIterate = std::function< bool(SARibbonPanel*) >;
41
42public:
44 explicit SARibbonCategory(QWidget* p = nullptr);
46 explicit SARibbonCategory(const QString& name, QWidget* p = nullptr);
49
51 QString categoryName() const;
52
54 void setCategoryName(const QString& title);
55
57 SARibbonPanel::PanelLayoutMode panelLayoutMode() const;
58
60 void setPanelLayoutMode(SARibbonPanel::PanelLayoutMode m);
61
63 SARibbonPanel* addPanel(const QString& title);
64
66 void addPanel(SARibbonPanel* panel);
67
69 Q_INVOKABLE void addPanel(QWidget* panel);
70
72 SARibbonPanel* insertPanel(const QString& title, int index);
73
75 void insertPanel(SARibbonPanel* panel, int index);
76
78 SARibbonPanel* panelByName(const QString& title) const;
79
81 SARibbonPanel* panelByObjectName(const QString& objname) const;
82
84 SARibbonPanel* panelByIndex(int index) const;
85
87 int panelIndex(SARibbonPanel* p) const;
88
90 void movePanel(int from, int to);
91
93 bool takePanel(SARibbonPanel* panel);
94
96 bool removePanel(SARibbonPanel* panel);
97
99 bool removePanel(int index);
100
102 QList< SARibbonPanel* > panelList() const;
103
105 bool isContextCategory() const;
106
108 int panelCount() const;
109
111 bool isCanCustomize() const;
113 void setCanCustomize(bool b);
114
116 int panelTitleHeight() const;
118 void setPanelTitleHeight(int h);
119
121 bool isEnableShowPanelTitle() const;
123 void setEnableShowPanelTitle(bool on);
124
126 void setCategoryAlignment(SARibbonAlignment al);
128 SARibbonAlignment categoryAlignment() const;
129
131 void setPanelSpacing(int n);
133 int panelSpacing() const;
134
136 void setPanelLargeIconSize(const QSize& largeSize);
138 QSize panelLargeIconSize() const;
139
141 void setPanelSmallIconSize(const QSize& smallSize);
143 QSize panelSmallIconSize() const;
144
146 void setPanelToolButtonIconSize(const QSize& smallSize, const QSize& largeSize);
148 QPair< QSize, QSize > panelToolButtonIconSize() const;
149
151 SARibbonBar* ribbonBar() const;
152
154 void updateItemGeometry();
155
157 void setUseAnimatingScroll(bool useAnimating);
159 bool isUseAnimatingScroll() const;
160
162 void setWheelScrollStep(int step);
164 int wheelScrollStep() const;
165
167 void setAnimationDuration(int duration);
169 int animationDuration() const;
170
172 bool isEnableWordWrap() const;
173
175 qreal buttonMaximumAspectRatio() const;
176
178 bool iteratePanel(FpPanelIterate fp) const;
179
180 QSize sizeHint() const Q_DECL_OVERRIDE;
181Q_SIGNALS:
183 void categoryNameChanged(const QString& n);
184
186 void actionTriggered(QAction* action);
187
188protected:
189 virtual bool event(QEvent* e) override;
191 void wheelEvent(QWheelEvent* event) override;
193 void changeEvent(QEvent* event) override;
194
196 void markIsContextCategory(bool isContextCategory = true);
197
199 SARibbonCategoryLayout* categoryLayout() const;
200
202 void setEnableWordWrap(bool on);
203
205 void setButtonMaximumAspectRatio(qreal fac = 1.4);
206};
207
209class SA_RIBBON_EXPORT SARibbonCategoryScrollButton : public QToolButton
210{
211 Q_OBJECT
212public:
213 explicit SARibbonCategoryScrollButton(Qt::ArrowType arr, QWidget* p = nullptr);
215};
216
217#endif // SARIBBONCATEGORY_H
Definition SARibbonBar.h:171
Definition SARibbonCategoryLayout.h:25
Scroll button for SARibbonCategory when content exceeds width
Definition SARibbonCategory.h:210
Definition SARibbonCategory.h:32
void categoryNameChanged(const QString &n)
Emitted when category name changes
void actionTriggered(QAction *action)
Emitted when an action is triggered
Definition SARibbonContextCategory.h:19
panel页窗口,panel是ribbon的面板用于承放控件 / Ribbon panel container, used to hold controls
Definition SARibbonPanel.h:100
PanelLayoutMode
Layout mode for the panel / 面板的布局模式
Definition SARibbonPanel.h:116