DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAbstractWidgetOverlay.h
1#ifndef DAABSTRACTWIDGETOVERLAY_H
2#define DAABSTRACTWIDGETOVERLAY_H
3#include "DAUtilsAPI.h"
4#include <QWidget>
5class QPainter;
6class QRegion;
7
8namespace DA
9{
10
17class DAUTILS_API DAAbstractWidgetOverlay : public QWidget
18{
19 DA_DECLARE_PRIVATE(DAAbstractWidgetOverlay)
20public:
35 {
38
46
54 AlphaMask
55 };
56
69 {
72
75
77 DrawOverlay
78 };
79
80public:
81 explicit DAAbstractWidgetOverlay(QWidget* parent);
83
84 void setMaskMode(MaskMode mode);
85 MaskMode getMaskMode() const;
86
87 void setRenderMode(RenderMode mode);
88 RenderMode getRenderMode() const;
89
90 virtual bool eventFilter(QObject* object, QEvent* event) override;
91
92public:
99 static QRegion maskRegion(const QRect& r, int penWidth);
106 static QRegion maskRegionVOrHLine(const QLine& VOrHLine, int penWidth);
107
108protected:
114 virtual void drawOverlay(QPainter* painter) const = 0;
115
132 virtual QRegion maskHint() const;
133
134 virtual void paintEvent(QPaintEvent* event) override;
135 virtual void resizeEvent(QResizeEvent* event) override;
136public Q_SLOTS:
137 void updateOverlay();
138
139private:
140 void updateMask();
141 void draw(QPainter* painter) const;
142};
143} // end ns da
144#endif // DAWIDGETOVERLAY_H
参照QwtWidgetOverlay的Widget Overlay
Definition DAAbstractWidgetOverlay.h:18
MaskMode
Definition DAAbstractWidgetOverlay.h:35
@ NoMask
不使用遮罩。
Definition DAAbstractWidgetOverlay.h:37
@ MaskHint
使用 maskHint() 作为遮罩
Definition DAAbstractWidgetOverlay.h:45
RenderMode
渲染模式
Definition DAAbstractWidgetOverlay.h:69
@ AutoRenderMode
使用光栅绘制引擎时复制缓冲区。(默认)
Definition DAAbstractWidgetOverlay.h:71
@ CopyAlphaMask
总是复制缓冲区
Definition DAAbstractWidgetOverlay.h:74
virtual void drawOverlay(QPainter *painter) const =0
绘制遮罩层的主要业务实现函数
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44