SARibbon 2.5.1
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonBarLayout.h
1#ifndef SARIBBONBARLAYOUT_H
2#define SARIBBONBARLAYOUT_H
3
4#include "SARibbonGlobal.h"
5#include "SARibbonBar.h"
6#include <QLayout>
7#include <QPointer>
8
14
15class SA_RIBBON_EXPORT SARibbonBarLayout : public QLayout
16{
17 Q_OBJECT
18 SA_RIBBON_DECLARE_PRIVATE(SARibbonBarLayout)
19public:
20 explicit SARibbonBarLayout(SARibbonBar* parent);
21 virtual ~SARibbonBarLayout();
22
23 // QLayout 必须实现的接口
24 void addItem(QLayoutItem* item) override;
25 QLayoutItem* itemAt(int index) const override;
26 QLayoutItem* takeAt(int index) override;
27 int count() const override;
28 QSize sizeHint() const override;
29 QSize minimumSize() const override;
30 void setGeometry(const QRect& rect) override;
31
32 // 执行布局
33 virtual void doLayout();
34
35 // 样式相关
36 bool isLooseStyle() const;
37 bool isCompactStyle() const;
38
39 // 标题区域
40 const QRect& titleRect() const;
41
42 // 计算最小TabBar宽度
43 int calcMinTabBarWidth() const;
44
45 // 重置尺寸,这个是在ribbon模式发生改变的时候调用,例如setMinimumMode或者setNormalMode,此函数会触发重新布局
46 void resetSize();
47
48 // 更新标题区域
49 void layoutTitleRect();
50
51 // 调整StackedContainerWidget的位置
52 void layoutStackedContainerWidget();
53
54 // 让category重新布局,这个函数在调整category的对其方式的时候调用,由于对其方式改变StackedContainerWidget的尺寸没有改变,但category要重新布局
55 void layoutCategory();
56
57 // 设置系统按钮大小
58 void setSystemButtonSize(const QSize& size);
59
60 // 设置tab在title上面,这样可以省略title区域
61 void setTabOnTitle(bool on);
62 bool isTabOnTitle() const;
63
64 // 最小模式下的MainBar高度
65 int minimumModeMainBarHeight() const;
66
67 // 获取正常模式下的mainBar的高度
68 int normalModeMainBarHeight() const;
69
70 // ribbon tab的高度
71 int tabBarHeight() const;
72 void setTabBarHeight(int h);
73
74 // 标题栏的高度
75 int titleBarHeight() const;
76 void setTitleBarHeight(int h);
77
78 // category的高度
79 int categoryHeight() const;
80 void setCategoryHeight(int h);
81
82 // 设置panel的标题栏高度
83 int panelTitleHeight() const;
84 void setPanelTitleHeight(int h);
85
86 // 设置图标
87 void setWindowIcon(const QIcon& icon);
88 QIcon windowIcon() const;
89
90 // 获取元素
91 SARibbonBar* ribbonBar() const;
92 SARibbonTabBar* ribbonTabBar() const;
93 SARibbonStackedWidget* stackedContainerWidget() const;
94 SARibbonQuickAccessBar* quickAccessBar() const;
95 SARibbonButtonGroupWidget* rightButtonGroup() const;
96 QAbstractButton* applicationButton() const;
97 SARibbonTitleIconWidget* titleIconWidget() const;
98
99protected:
100 void resizeInLooseStyle();
101 void resizeInCompactStyle();
102
103private:
104 void init();
105};
106
107#endif // SARIBBONBARLAYOUT_H
Definition SARibbonBarLayout.h:16
SARibbonBar继承于QMenuBar,在SARibbonMainWindow中直接替换了原来的QMenuBar
Definition SARibbonBar.h:94
用于管理一组Action,类似于QToolBar
Definition SARibbonButtonGroupWidget.h:11
管理上下文标签的类
Definition SARibbonContextCategory.h:11
Ribbon quick access toolbar in the top left corner/ribbon左上顶部的快速响应栏
Definition SARibbonQuickAccessBar.h:46
具有弹出式菜单功能的堆叠窗口部件
Definition SARibbonStackedWidget.h:23
The SARibbonTabBar class
Definition SARibbonTabBar.h:11
Ribbon风格的标题栏图标控件 模拟Windows原生窗口左上角的程序图标功能,支持右键菜单和窗口控制操作
Definition SARibbonTitleIconWidget.h:13