SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonGallery.h
1#ifndef SARIBBONGALLERY_H
2#define SARIBBONGALLERY_H
3#include "SARibbonGlobal.h"
4#include <QFrame>
5#include <QToolButton>
6#include <QScrollArea>
7#include "SARibbonGalleryGroup.h"
8class QLabel;
9class QVBoxLayout;
10class QSizeGrip;
11class QShowEvent;
12class QHideEvent;
14
24class SA_RIBBON_EXPORT SARibbonGalleryButton : public QToolButton
25{
26 Q_OBJECT
27public:
28 explicit SARibbonGalleryButton(QWidget* parent = nullptr);
30};
31
79class SA_RIBBON_EXPORT SARibbonGallery : public QFrame
80{
81 Q_OBJECT
82 SA_RIBBON_DECLARE_PRIVATE(SARibbonGallery)
83public:
85 explicit SARibbonGallery(QWidget* parent = nullptr);
87 virtual ~SARibbonGallery();
89 SARibbonGalleryGroup* addGalleryGroup();
91 void addGalleryGroup(SARibbonGalleryGroup* group);
93 SARibbonGalleryGroup* addCategoryActions(const QString& title, QList< QAction* > actions);
95 void setCurrentViewGroup(SARibbonGalleryGroup* group);
97 SARibbonGalleryGroup* currentViewGroup() const;
99 SARibbonGalleryViewport* getPopupViewPort() const;
100
101public:
103 static void setGalleryButtonMaximumWidth(int w);
104Q_SIGNALS:
118 void triggered(QAction* action);
132 void hovered(QAction* action);
133
134public Q_SLOTS:
136 virtual void pageUp();
138 virtual void pageDown();
140 virtual void showMoreDetail();
141protected Q_SLOTS:
143 void onItemClicked(const QModelIndex& index);
145 virtual void onTriggered(QAction* action);
146
147private:
148 SARibbonGalleryViewport* ensureGetPopupViewPort();
149
150protected:
152 void resizeEvent(QResizeEvent* event) override;
153};
154
164class SARibbonGalleryViewport : public QScrollArea
165{
166 Q_OBJECT
167public:
168 explicit SARibbonGalleryViewport(QWidget* parent);
169 // 添加窗口不带标题
170 void addWidget(QWidget* w);
171 // 添加窗口,带标题
172 void addWidget(QWidget* w, const QString& title);
173 // 通过SARibbonGalleryGroup获取对应的标题,用户可以通过此函数设置QLabel的属性
174 QLabel* titleLabel(QWidget* w);
175 // 移除窗口
176 void removeWidget(QWidget* w);
177 // 获取此窗口下所有的SARibbonGalleryGroup
178 QList< SARibbonGalleryGroup* > galleryGroupList() const;
179 // 获取gallery的高度
180 int galleryHeight() const;
181 // 根据宽度计算高度推荐值
182 int heightHintForWidth(int w) const;
183public Q_SLOTS:
184 void onTitleChanged(QWidget* w, const QString& title);
185
186protected: // 新增
187 bool eventFilter(QObject* o, QEvent* e) override;
188 void showEvent(QShowEvent* e) override;
189 void hideEvent(QHideEvent* e) override;
190 void resizeEvent(QResizeEvent* e) override;
191
192private:
193 QWidget* m_contentWidget { nullptr };
194 QVBoxLayout* m_layout;
195 QMap< QWidget*, QLabel* > m_widgetToTitleLabel;
196 QSizeGrip* m_sizeGrip;
197};
198
199#endif // SARIBBONGALLERY_H
Definition SARibbonGallery.h:25
Definition SARibbonGalleryGroup.h:100
Definition SARibbonGallery.h:165
void addWidget(QWidget *w)
添加窗口不带标题
Definition SARibbonGallery.cpp:179
QLabel * titleLabel(QWidget *w)
通过SARibbonGalleryGroup获取对应的标题,用户可以通过此函数设置QLabel的属性
Definition SARibbonGallery.cpp:228
int heightHintForWidth(int w) const
根据宽度计算高度推荐值
Definition SARibbonGallery.cpp:277
void removeWidget(QWidget *w)
移除窗口
Definition SARibbonGallery.cpp:237
void onTitleChanged(QWidget *w, const QString &title)
widget的标题改变
Definition SARibbonGallery.cpp:302
Definition SARibbonGallery.h:80
void hovered(QAction *action)
void triggered(QAction *action)