SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonTitleIconWidget.h
1#ifndef SARIBBONTITLEICONWIDGET_H
2#define SARIBBONTITLEICONWIDGET_H
3#include "SARibbonGlobal.h"
4#include <QWidget>
5#include <QMenu>
6#include <QIcon>
7#include <QPointer>
12class SA_RIBBON_EXPORT SARibbonTitleIconWidget : public QWidget
13{
14 Q_OBJECT
15public:
16 // 构造函数
17 explicit SARibbonTitleIconWidget(QWidget* parent = nullptr);
18
19 // 关联的窗口
20 void setWidget(QWidget* window);
21 QWidget* widget() const;
22
23 // 图标
24 void setIcon(const QIcon& icon);
25 QIcon icon() const;
26
27 // 图标大小
28 void setIconSize(const QSize& size);
29 QSize iconSize() const;
30
31 // 内边距
32 void setPadding(int v);
33 int padding() const;
34
35public:
36 virtual QSize sizeHint() const override;
37
38protected:
39 // 绘制事件处理
40 void paintEvent(QPaintEvent* event) override;
41
42 // 鼠标按下事件处理
43 void mousePressEvent(QMouseEvent* event) override;
44
45 // 右键菜单事件处理
46 void contextMenuEvent(QContextMenuEvent* event) override;
47
48private:
49 // 创建上下文菜单
50 void createContextMenu();
51
52 // 设置菜单动作
53 void setupMenuActions();
54
55private Q_SLOTS:
56 // 还原窗口
57 void onRestore();
58
59 // 移动窗口
60 void onMove();
61
62 // 调整窗口大小
63 void onSize();
64
65 // 最小化窗口
66 void onMinimize();
67
68 // 最大化窗口
69 void onMaximize();
70
71 // 关闭窗口
72 void onClose();
73
74private:
75 QPointer< QWidget > m_widget;
76 QIcon m_icon;
77 QSize m_iconSize;
78 QMenu* m_contextMenu;
79 int mPadding;
80};
81
82#endif // SARIBBONTITLEICONWIDGET_H
Ribbon风格的标题栏图标控件 模拟Windows原生窗口左上角的程序图标功能,支持右键菜单和窗口控制操作
Definition SARibbonTitleIconWidget.h:13