SARibbon 2.5.1
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonSystemButtonBar.h
1#ifndef SARIBBONSYSTEMBUTTONBAR_H
2#define SARIBBONSYSTEMBUTTONBAR_H
3#include "SARibbonGlobal.h"
4#include <QFrame>
5#include <QToolButton>
6
26class SA_RIBBON_EXPORT SARibbonSystemButtonBar : public QFrame
27{
28 Q_OBJECT
29 SA_RIBBON_DECLARE_PRIVATE(SARibbonSystemButtonBar)
30public:
31 explicit SARibbonSystemButtonBar(QWidget* parent);
32 explicit SARibbonSystemButtonBar(QWidget* parent, Qt::WindowFlags flags);
34 void setupMinimizeButton(bool on);
35 void setupMaximizeButton(bool on);
36 void setupCloseButton(bool on);
37 // 以最顶层的widget的WindowFlag作为WindowFlag
38 void updateWindowFlag();
39 void updateWindowFlag(Qt::WindowFlags flags);
40 // 设置按钮的宽度比例,最终按钮宽度将按照此比例进行设置
41 void setButtonWidthStretch(int close = 4, int max = 3, int min = 3);
42 // 标题栏高度
43 void setWindowTitleHeight(int h);
44 int windowTitleHeight() const;
45 // 设置标准系统按钮的宽度
46 void setWindowButtonWidth(int w);
47 int windowButtonWidth() const;
48 // 设置Qt::WindowStates
49 void setWindowStates(Qt::WindowStates s);
50 // 仅获取按钮的状态
51 Qt::WindowFlags windowButtonFlags() const;
52 // 三个标准系统窗口按钮
53 QAbstractButton* minimizeButton() const;
54 QAbstractButton* maximizeButton() const;
55 QAbstractButton* closeButton() const;
56
57 // 图标尺寸
58 void setIconSize(const QSize& ic);
59 QSize iconSize() const;
60 // 生成并添加一个action
61 void addAction(QAction* a);
62 void addMenuAction(QAction* menuAction, QToolButton::ToolButtonPopupMode popupMode = QToolButton::InstantPopup);
63 QAction* addMenuAction(QMenu* menu, QToolButton::ToolButtonPopupMode popupMode = QToolButton::InstantPopup);
64 QAction* addSeparator();
65 QAction* addWidget(QWidget* w);
66
67 virtual QSize sizeHint() const Q_DECL_OVERRIDE;
68 // 捕获mainwindow的事件
69 bool eventFilter(QObject* obj, QEvent* event) override;
70
71protected:
72 virtual void resizeEvent(QResizeEvent* e) Q_DECL_OVERRIDE;
73
74protected Q_SLOTS:
75 Q_SLOT void closeWindow();
76 Q_SLOT void minimizeWindow();
77 Q_SLOT void maximizeWindow();
78};
79
83class SARibbonSystemToolButton : public QToolButton
84{
85 Q_OBJECT
86public:
87 SARibbonSystemToolButton(QWidget* p = nullptr);
88};
89
90#endif // SARIBBONSYSTEMBUTTONBAR_H
窗口的最大最小化按钮
Definition SARibbonSystemButtonBar.h:27
The SARibbonSystemToolButton class/系统最大最小化按钮
Definition SARibbonSystemButtonBar.h:84