SARibbon 2.5.1
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 setWindow(QWidget* window);
21
22 // 设置图标
23 void setIcon(const QIcon& icon);
24
25 // 设置图标大小
26 void setIconSize(const QSize& size);
27 int padding() const;
28 void setPadding(int v);
29
30public:
31 virtual QSize sizeHint() const;
32
33protected:
34 // 绘制事件处理
35 void paintEvent(QPaintEvent* event) override;
36
37 // 鼠标按下事件处理
38 void mousePressEvent(QMouseEvent* event) override;
39
40 // 右键菜单事件处理
41 void contextMenuEvent(QContextMenuEvent* event) override;
42
43private:
44 // 创建上下文菜单
45 void createContextMenu();
46
47 // 设置菜单动作
48 void setupMenuActions();
49
50private Q_SLOTS:
51 // 还原窗口
52 void onRestore();
53
54 // 移动窗口
55 void onMove();
56
57 // 调整窗口大小
58 void onSize();
59
60 // 最小化窗口
61 void onMinimize();
62
63 // 最大化窗口
64 void onMaximize();
65
66 // 关闭窗口
67 void onClose();
68
69private:
70 QPointer< QWidget > m_window;
71 QIcon m_icon;
72 QSize m_iconSize;
73 QMenu* m_contextMenu;
74 int mPadding;
75};
76
77#endif // SARIBBONTITLEICONWIDGET_H
Ribbon风格的标题栏图标控件 模拟Windows原生窗口左上角的程序图标功能,支持右键菜单和窗口控制操作
Definition SARibbonTitleIconWidget.h:13