Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qgraphicseffect.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QGRAPHICSEFFECT_H
6
#
define
QGRAPHICSEFFECT_H
7
8
#
include
<
QtWidgets
/
qtwidgetsglobal
.
h
>
9
#
include
<
QtCore
/
qobject
.
h
>
10
#
include
<
QtCore
/
qpoint
.
h
>
11
#
include
<
QtCore
/
qrect
.
h
>
12
#
include
<
QtGui
/
qcolor
.
h
>
13
#
include
<
QtGui
/
qbrush
.
h
>
14
15
QT_REQUIRE_CONFIG
(
graphicseffect
);
16
17
QT_BEGIN_NAMESPACE
18
19
class
QGraphicsItem;
20
class
QStyleOption;
21
class
QPainter
;
22
class
QPixmap;
23
24
class
QGraphicsEffectSource;
25
26
class
QGraphicsEffectPrivate;
27
class
Q_WIDGETS_EXPORT
QGraphicsEffect
:
public
QObject
28
{
29
Q_OBJECT
30
Q_PROPERTY(
bool
enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
31
public
:
32
enum
ChangeFlag {
33
SourceAttached = 0x1,
34
SourceDetached = 0x2,
35
SourceBoundingRectChanged = 0x4,
36
SourceInvalidated = 0x8
37
};
38
Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag)
39
Q_FLAG(ChangeFlags)
40
41
enum
PixmapPadMode {
42
NoPad,
43
PadToTransparentBorder,
44
PadToEffectiveBoundingRect
45
};
46
47
QGraphicsEffect(QObject *parent =
nullptr
);
48
virtual
~QGraphicsEffect();
49
50
virtual
QRectF boundingRectFor(
const
QRectF &sourceRect)
const
;
51
QRectF boundingRect()
const
;
52
53
bool
isEnabled()
const
;
54
55
public
Q_SLOTS:
56
void
setEnabled(
bool
enable);
57
void
update();
58
59
Q_SIGNALS:
60
void
enabledChanged(
bool
enabled);
61
62
protected
:
63
QGraphicsEffect(QGraphicsEffectPrivate &d, QObject *parent =
nullptr
);
64
virtual
void
draw(QPainter *painter) = 0;
65
virtual
void
sourceChanged(ChangeFlags flags);
66
void
updateBoundingRect();
67
68
bool
sourceIsPixmap()
const
;
69
QRectF sourceBoundingRect(Qt::CoordinateSystem system = Qt::LogicalCoordinates)
const
;
70
void
drawSource(QPainter *painter);
71
QPixmap sourcePixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates,
72
QPoint *offset =
nullptr
,
73
PixmapPadMode mode = PadToEffectiveBoundingRect)
const
;
74
75
private
:
76
Q_DECLARE_PRIVATE(QGraphicsEffect)
77
Q_DISABLE_COPY(QGraphicsEffect)
78
friend
class
QGraphicsItem;
79
friend
class
QGraphicsItemPrivate;
80
friend
class
QGraphicsScenePrivate;
81
friend
class
QWidget;
82
friend
class
QWidgetPrivate;
83
84
public
:
85
QGraphicsEffectSource *source()
const
;
// internal
86
87
};
88
Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsEffect::ChangeFlags)
89
90
class
QGraphicsColorizeEffectPrivate;
91
class
Q_WIDGETS_EXPORT
QGraphicsColorizeEffect
:
public
QGraphicsEffect
92
{
93
Q_OBJECT
94
Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
95
Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged)
96
public
:
97
QGraphicsColorizeEffect(QObject *parent =
nullptr
);
98
~QGraphicsColorizeEffect();
99
100
QColor color()
const
;
101
qreal strength()
const
;
102
103
public
Q_SLOTS:
104
void
setColor(
const
QColor &c);
105
void
setStrength(qreal strength);
106
107
Q_SIGNALS:
108
void
colorChanged(
const
QColor &color);
109
void
strengthChanged(qreal strength);
110
111
protected
:
112
void
draw(QPainter *painter) override;
113
114
private
:
115
Q_DECLARE_PRIVATE(QGraphicsColorizeEffect)
116
Q_DISABLE_COPY(QGraphicsColorizeEffect)
117
};
118
119
class
QGraphicsBlurEffectPrivate
;
120
class
Q_WIDGETS_EXPORT
QGraphicsBlurEffect
:
public
QGraphicsEffect
121
{
122
Q_OBJECT
123
Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged)
124
Q_PROPERTY(BlurHints blurHints READ blurHints WRITE setBlurHints NOTIFY blurHintsChanged)
125
public
:
126
enum
BlurHint {
127
PerformanceHint = 0x00,
128
QualityHint = 0x01,
129
AnimationHint = 0x02
130
};
131
Q_ENUM(BlurHint)
132
Q_DECLARE_FLAGS(BlurHints, BlurHint)
133
Q_FLAG(BlurHints)
134
135
QGraphicsBlurEffect(QObject *parent =
nullptr
);
136
~QGraphicsBlurEffect();
137
138
QRectF boundingRectFor(
const
QRectF &rect)
const
override;
139
qreal blurRadius()
const
;
140
BlurHints blurHints()
const
;
141
142
public
Q_SLOTS:
143
void
setBlurRadius(qreal blurRadius);
144
void
setBlurHints(BlurHints hints);
145
146
Q_SIGNALS:
147
void
blurRadiusChanged(qreal blurRadius);
148
void
blurHintsChanged(BlurHints hints);
149
150
protected
:
151
void
draw(QPainter *painter) override;
152
153
private
:
154
Q_DECLARE_PRIVATE(QGraphicsBlurEffect)
155
Q_DISABLE_COPY(QGraphicsBlurEffect)
156
};
157
158
Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsBlurEffect::BlurHints)
159
160
class
QGraphicsDropShadowEffectPrivate;
161
class
Q_WIDGETS_EXPORT
QGraphicsDropShadowEffect
:
public
QGraphicsEffect
162
{
163
Q_OBJECT
164
Q_PROPERTY(QPointF offset READ offset WRITE setOffset NOTIFY offsetChanged)
165
Q_PROPERTY(qreal xOffset READ xOffset WRITE setXOffset NOTIFY offsetChanged)
166
Q_PROPERTY(qreal yOffset READ yOffset WRITE setYOffset NOTIFY offsetChanged)
167
Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged)
168
Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
169
public
:
170
QGraphicsDropShadowEffect(QObject *parent =
nullptr
);
171
~QGraphicsDropShadowEffect();
172
173
QRectF boundingRectFor(
const
QRectF &rect)
const
override;
174
QPointF offset()
const
;
175
176
inline
qreal xOffset()
const
177
{
return
offset().x(); }
178
179
inline
qreal yOffset()
const
180
{
return
offset().y(); }
181
182
qreal blurRadius()
const
;
183
QColor color()
const
;
184
185
public
Q_SLOTS:
186
void
setOffset(
const
QPointF &ofs);
187
188
inline
void
setOffset(qreal dx, qreal dy)
189
{ setOffset(QPointF(dx, dy)); }
190
191
inline
void
setOffset(qreal d)
192
{ setOffset(QPointF(d, d)); }
193
194
inline
void
setXOffset(qreal dx)
195
{ setOffset(QPointF(dx, yOffset())); }
196
197
inline
void
setYOffset(qreal dy)
198
{ setOffset(QPointF(xOffset(), dy)); }
199
200
void
setBlurRadius(qreal blurRadius);
201
void
setColor(
const
QColor &color);
202
203
Q_SIGNALS:
204
void
offsetChanged(
const
QPointF &offset);
205
void
blurRadiusChanged(qreal blurRadius);
206
void
colorChanged(
const
QColor &color);
207
208
protected
:
209
void
draw(QPainter *painter) override;
210
211
private
:
212
Q_DECLARE_PRIVATE(QGraphicsDropShadowEffect)
213
Q_DISABLE_COPY(QGraphicsDropShadowEffect)
214
};
215
216
class
QGraphicsOpacityEffectPrivate
;
217
class
Q_WIDGETS_EXPORT
QGraphicsOpacityEffect
:
public
QGraphicsEffect
218
{
219
Q_OBJECT
220
Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged)
221
Q_PROPERTY(QBrush opacityMask READ opacityMask WRITE setOpacityMask NOTIFY opacityMaskChanged)
222
public
:
223
QGraphicsOpacityEffect(QObject *parent =
nullptr
);
224
~QGraphicsOpacityEffect();
225
226
qreal opacity()
const
;
227
QBrush opacityMask()
const
;
228
229
public
Q_SLOTS:
230
void
setOpacity(qreal opacity);
231
void
setOpacityMask(
const
QBrush &mask);
232
233
Q_SIGNALS:
234
void
opacityChanged(qreal opacity);
235
void
opacityMaskChanged(
const
QBrush &mask);
236
237
protected
:
238
void
draw(QPainter *painter) override;
239
240
private
:
241
Q_DECLARE_PRIVATE(QGraphicsOpacityEffect)
242
Q_DISABLE_COPY(QGraphicsOpacityEffect)
243
};
244
245
QT_END_NAMESPACE
246
247
#
endif
// QGRAPHICSEFFECT_H
QGraphicsBlurEffectPrivate
Definition
qgraphicseffect_p.h:160
QGraphicsBlurEffect
The QGraphicsBlurEffect class provides a blur effect.
Definition
qgraphicseffect.h:121
QGraphicsColorizeEffectPrivate
Definition
qgraphicseffect_p.h:144
QGraphicsColorizeEffectPrivate::padding
quint32 padding
Definition
qgraphicseffect_p.h:156
QGraphicsColorizeEffectPrivate::opaque
quint32 opaque
Definition
qgraphicseffect_p.h:155
QGraphicsColorizeEffect
The QGraphicsColorizeEffect class provides a colorize effect.
Definition
qgraphicseffect.h:92
QGraphicsDropShadowEffectPrivate
Definition
qgraphicseffect_p.h:170
QGraphicsDropShadowEffect
The QGraphicsDropShadowEffect class provides a drop shadow effect.
Definition
qgraphicseffect.h:162
QGraphicsEffectPrivate
Definition
qgraphicseffect_p.h:114
QGraphicsEffectSourcePrivate
Definition
qgraphicseffect_p.h:67
QGraphicsEffectSourcePrivate::~QGraphicsEffectSourcePrivate
virtual ~QGraphicsEffectSourcePrivate()
Definition
qgraphicseffect.cpp:345
QGraphicsEffectSourcePrivate::setCachedOffset
void setCachedOffset(const QPoint &offset)
Definition
qgraphicseffect.cpp:350
QGraphicsEffectSourcePrivate::graphicsItem
virtual const QGraphicsItem * graphicsItem() const =0
QGraphicsEffectSourcePrivate::isPixmap
virtual bool isPixmap() const =0
QGraphicsEffectSourcePrivate::pixmap
virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset=nullptr, QGraphicsEffect::PixmapPadMode mode=QGraphicsEffect::PadToTransparentBorder) const =0
QGraphicsEffectSourcePrivate::invalidateCache
void invalidateCache(InvalidateReason reason=SourceChanged) const
Definition
qgraphicseffect.cpp:355
QGraphicsEffectSourcePrivate::boundingRect
virtual QRectF boundingRect(Qt::CoordinateSystem system) const =0
QGraphicsEffectSourcePrivate::currentCachedSystem
Qt::CoordinateSystem currentCachedSystem() const
Definition
qgraphicseffect_p.h:99
QGraphicsEffectSourcePrivate::update
virtual void update()=0
QGraphicsEffectSourcePrivate::styleOption
virtual const QStyleOption * styleOption() const =0
QGraphicsEffectSourcePrivate::draw
virtual void draw(QPainter *p)=0
QGraphicsEffectSourcePrivate::detach
virtual void detach()=0
QGraphicsEffectSourcePrivate::deviceRect
virtual QRect deviceRect() const =0
QGraphicsEffectSourcePrivate::effectBoundingRectChanged
virtual void effectBoundingRectChanged()=0
QGraphicsEffectSourcePrivate::widget
virtual const QWidget * widget() const =0
QGraphicsEffectSource
The QGraphicsEffectSource class represents the source on which a QGraphicsEffect is installed on.
Definition
qgraphicseffect_p.h:33
QGraphicsEffect
The QGraphicsEffect class is the base class for all graphics effects.
Definition
qgraphicseffect.h:28
QGraphicsOpacityEffectPrivate
Definition
qgraphicseffect_p.h:180
QGraphicsOpacityEffectPrivate::hasOpacityMask
uint hasOpacityMask
Definition
qgraphicseffect_p.h:191
QGraphicsOpacityEffectPrivate::isFullyOpaque
uint isFullyOpaque
Definition
qgraphicseffect_p.h:190
QGraphicsOpacityEffectPrivate::isFullyTransparent
uint isFullyTransparent
Definition
qgraphicseffect_p.h:189
QGraphicsOpacityEffectPrivate::opacityMask
QBrush opacityMask
Definition
qgraphicseffect_p.h:188
QGraphicsOpacityEffect
The QGraphicsOpacityEffect class provides an opacity effect.
Definition
qgraphicseffect.h:218
QPaintEngine::QPainter
friend class QPainter
Definition
qpaintengine.h:220
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(animation)
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(graphicseffect)
qtbase
src
widgets
effects
qgraphicseffect.h
Generated on
for Qt by
1.18.0