QtCanpool 3.3.0
载入中...
搜索中...
未找到
ribbonbar.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxribbon_global.h"
8#include "ribbonpage.h"
9#include "ribbonpagecontext.h"
10
11#include <QMenuBar>
12#include <QScopedPointer>
13#include <QVariant>
14
15class QAbstractButton;
16
18
19class RibbonFactory;
20class RibbonBarPrivate;
21class RibbonButtonGroup;
22class RibbonQuickAccessBar;
23
98class QX_RIBBON_EXPORT RibbonBar : public QMenuBar
99{
100 Q_OBJECT
101 Q_PROPERTY(RibbonStyle ribbonStyle READ currentRibbonStyle WRITE setRibbonStyle)
102 Q_PROPERTY(
103 QuickAccessBarPosition quickAccessBarPosition READ quickAccessBarPosition WRITE setQuickAccessBarPosition)
104 Q_PROPERTY(bool minimized READ isMinimized WRITE setMinimized)
105 Q_PROPERTY(bool minimumButton READ haveShowMinimumButton WRITE showMinimumButton)
106 Q_PROPERTY(Qt::Alignment windowTitleAligment READ windowTitleAligment WRITE setWindowTitleAligment)
107public:
109 OfficeStyle = 0x0000,
110 WpsLiteStyle = 0x0001,
111 OfficeStyleTwoRow = 0x0100 | OfficeStyle,
112 WpsLiteStyleTwoRow = 0x0100 | WpsLiteStyle,
113 };
114 Q_ENUM(RibbonStyle)
115
117 // Only for WpsLiteStyle
118 QABLeftPosition = 1,
119 QABRightPosition
120 };
121 Q_ENUM(QuickAccessBarPosition)
122
125 TBCenterPosition
126 };
127 Q_ENUM(TabBarPosition)
128public:
129 RibbonBar(QWidget *parent = Q_NULLPTR);
130 ~RibbonBar() Q_DECL_OVERRIDE;
131
132 QAbstractButton *applicationButton();
133 void setApplicationButton(QAbstractButton *btn);
134
135 RibbonPage *addPage(const QString &title);
136 void addPage(RibbonPage *page);
137 RibbonPage *insertPage(int index, const QString &title);
138 void insertPage(int index, RibbonPage *page);
139
140 RibbonPage *page(int index) const;
141 RibbonPage *pageByName(const QString &title) const;
142 RibbonPage *pageByObjectName(const QString &objname) const;
143 QList<RibbonPage *> pages(bool getAll = true) const;
144
145 bool isPageVisible(RibbonPage *page) const;
146 void showPage(RibbonPage *page);
147 void hidePage(RibbonPage *page);
148 void raisePage(RibbonPage *page);
149
150 void removePage(RibbonPage *page);
151 void clearPages();
152 void movePage(int from, int to);
153
154 int pageIndex(RibbonPage *page) const;
155
156 RibbonPageContext *addPageContext(const QString &title, const QColor &color = QColor());
157 void addPageContext(RibbonPageContext *context);
158
159 void showPageContext(RibbonPageContext *context);
160 void hidePageContext(RibbonPageContext *context);
161
162 bool isPageContextVisible(RibbonPageContext *context);
163 void setPageContextVisible(RibbonPageContext *context, bool visible);
164
165 bool isPageContextCoverTab();
166 void setPageContextCoverTab(bool cover);
167
168 QList<RibbonPageContext *> pageContextList() const;
169
170 void destroyPageContext(RibbonPageContext *context);
171
172 void minimize();
173 bool isMinimized() const;
174 void setMinimized(bool flag);
175
176 bool haveShowMinimumButton() const;
177 void showMinimumButton(bool isShow = true);
178
179 int tabBarHeight() const;
180 int titleBarHeight() const;
181
182 RibbonButtonGroup *cornerButtonGroup(Qt::Corner corner = Qt::BottomRightCorner);
183
184 RibbonQuickAccessBar *quickAccessBar() const;
185 void setQuickAccessBarPosition(QuickAccessBarPosition position);
186 QuickAccessBarPosition quickAccessBarPosition() const;
187
188 void setTabBarPosition(TabBarPosition position);
189 TabBarPosition tabBarPosition() const;
190
191 RibbonStyle currentRibbonStyle() const;
192 void setRibbonStyle(RibbonStyle v);
193
194 int currentIndex();
195 void setCurrentIndex(int index);
196
197 bool isOfficeStyle() const;
198 bool isTwoRowStyle() const;
199
200 void setWindowButtonGroup(QWidget *widget);
201
202 void updateRibbonGeometry();
203 void updateRibbonTheme();
204 void resizeRibbon();
205
206 Qt::Alignment windowTitleAligment() const;
207 void setWindowTitleAligment(Qt::Alignment al);
208
209 void setWindowTitleVisible(bool visible);
210
211 QSize sizeHint() const Q_DECL_OVERRIDE;
212 QSize minimumSizeHint() const Q_DECL_OVERRIDE;
213
214Q_SIGNALS:
215 void minimizationChanged(bool minimized);
216 void applicationButtonClicked();
217 void currentRibbonTabChanged(int index);
218 void ribbonStyleChanged(RibbonStyle nowStyle);
219protected:
220 bool event(QEvent *event) Q_DECL_OVERRIDE;
221 bool eventFilter(QObject *obj, QEvent *e) Q_DECL_OVERRIDE;
222 void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
223 void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
224private:
226};
227
RibbonBar 继承 QMenuBar, 在 RibbonWindow 中直接替换了原来的 QMenuBar
Definition ribbonbar.h:99
管理上下文标签的类
一项 ribbon tab 页
Definition ribbonpage.h:30
#define QX_DECLARE_PRIVATE(Class)
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_RIBBON_EXPORT
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE