Qt 4.8
Public Slots | Signals | Public Functions | Protected Functions | Properties | List of all members
QGraphicsOpacityEffect Class Reference

The QGraphicsOpacityEffect class provides an opacity effect. More...

#include <qgraphicseffect.h>

Inheritance diagram for QGraphicsOpacityEffect:
QGraphicsEffect QObject

Public Slots

void setOpacity (qreal opacity)
 
void setOpacityMask (const QBrush &mask)
 
- Public Slots inherited from QGraphicsEffect
void setEnabled (bool enable)
 
void update ()
 Schedules a redraw of the effect. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 

Signals

void opacityChanged (qreal opacity)
 This signal is emitted whenever the effect's opacity changes. More...
 
void opacityMaskChanged (const QBrush &mask)
 This signal is emitted whenever the effect's opacity mask changes. More...
 
- Signals inherited from QGraphicsEffect
void enabledChanged (bool enabled)
 This signal is emitted whenever the effect is enabled or disabled. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

qreal opacity () const
 
QBrush opacityMask () const
 
 QGraphicsOpacityEffect (QObject *parent=0)
 Constructs a new QGraphicsOpacityEffect instance. More...
 
 ~QGraphicsOpacityEffect ()
 Destroys the effect. More...
 
- Public Functions inherited from QGraphicsEffect
QRectF boundingRect () const
 Returns the effective bounding rectangle for this effect, i.e., the bounding rectangle of the source in device coordinates, adjusted by any margins applied by the effect itself. More...
 
virtual QRectF boundingRectFor (const QRectF &sourceRect) const
 Returns the effective bounding rectangle for this effect, given the provided rect in the device coordinates. More...
 
bool isEnabled () const
 
 QGraphicsEffect (QObject *parent=0)
 Constructs a new QGraphicsEffect instance having the specified parent. More...
 
QGraphicsEffectSourcesource () const
 Returns a pointer to the source, which provides extra context information that can be useful for the effect. More...
 
virtual ~QGraphicsEffect ()
 Removes the effect from the source, and destroys the graphics effect. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Functions

void draw (QPainter *painter)
 Reimplemented Function More...
 
- Protected Functions inherited from QGraphicsEffect
void drawSource (QPainter *painter)
 Draws the source directly using the given painter. More...
 
 QGraphicsEffect (QGraphicsEffectPrivate &d, QObject *parent=0)
 
QRectF sourceBoundingRect (Qt::CoordinateSystem system=Qt::LogicalCoordinates) const
 Returns the bounding rectangle of the source mapped to the given system. More...
 
virtual void sourceChanged (ChangeFlags flags)
 This virtual function is called by QGraphicsEffect to notify the effect that the source has changed. More...
 
bool sourceIsPixmap () const
 Returns true if the source effectively is a pixmap, e.g., a QGraphicsPixmapItem. More...
 
QPixmap sourcePixmap (Qt::CoordinateSystem system=Qt::LogicalCoordinates, QPoint *offset=0, PixmapPadMode mode=PadToEffectiveBoundingRect) const
 Returns a pixmap with the source painted into it. More...
 
void updateBoundingRect ()
 This function notifies the effect framework when the effect's bounding rectangle has changed. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Properties

qreal opacity
 the opacity of the effect. More...
 
QBrush opacityMask
 the opacity mask of the effect. More...
 

Additional Inherited Members

- Public Types inherited from QGraphicsEffect
enum  ChangeFlag { SourceAttached = 0x1, SourceDetached = 0x2, SourceBoundingRectChanged = 0x4, SourceInvalidated = 0x8 }
 This enum describes what has changed in QGraphicsEffectSource. More...
 
enum  PixmapPadMode { NoPad, PadToTransparentBorder, PadToEffectiveBoundingRect }
 This enum describes how the pixmap returned from sourcePixmap should be padded. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QGraphicsOpacityEffect class provides an opacity effect.

Since
4.6

An opacity effect renders the source with an opacity. This effect is useful for making the source semi-transparent, similar to a fade-in/fade-out sequence. The opacity can be modified using the setOpacity() function.

By default, the opacity is 0.7.

graphicseffect-opacity.png
See also
QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsColorizeEffect

Definition at line 255 of file qgraphicseffect.h.

Constructors and Destructors

◆ QGraphicsOpacityEffect()

QGraphicsOpacityEffect::QGraphicsOpacityEffect ( QObject parent = 0)

Constructs a new QGraphicsOpacityEffect instance.

The parent parameter is passed to QGraphicsEffect's constructor.

Definition at line 1175 of file qgraphicseffect.cpp.

1177 {
1178 }
QGraphicsEffect(QObject *parent=0)
Constructs a new QGraphicsEffect instance having the specified parent.

◆ ~QGraphicsOpacityEffect()

QGraphicsOpacityEffect::~QGraphicsOpacityEffect ( )

Destroys the effect.

Definition at line 1183 of file qgraphicseffect.cpp.

1184 {
1185 }

Functions

◆ draw()

void QGraphicsOpacityEffect::draw ( QPainter painter)
protectedvirtual

Reimplemented Function

Implements QGraphicsEffect.

Definition at line 1283 of file qgraphicseffect.cpp.

1284 {
1286 
1287  // Transparent; nothing to draw.
1288  if (d->isFullyTransparent)
1289  return;
1290 
1291  // Opaque; draw directly without going through a pixmap.
1292  if (d->isFullyOpaque && !d->hasOpacityMask) {
1293  drawSource(painter);
1294  return;
1295  }
1296 
1297  QPoint offset;
1299  QPixmap pixmap = sourcePixmap(system, &offset, QGraphicsEffect::NoPad);
1300  if (pixmap.isNull())
1301  return;
1302 
1303  painter->save();
1304  painter->setOpacity(d->opacity);
1305 
1306  if (d->hasOpacityMask) {
1307  QPainter pixmapPainter(&pixmap);
1308  pixmapPainter.setRenderHints(painter->renderHints());
1309  pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
1310  if (system == Qt::DeviceCoordinates) {
1311  QTransform worldTransform = painter->worldTransform();
1312  worldTransform *= QTransform::fromTranslate(-offset.x(), -offset.y());
1313  pixmapPainter.setWorldTransform(worldTransform);
1314  pixmapPainter.fillRect(sourceBoundingRect(), d->opacityMask);
1315  } else {
1316  pixmapPainter.translate(-offset);
1317  pixmapPainter.fillRect(pixmap.rect(), d->opacityMask);
1318  }
1319  }
1320 
1321  if (system == Qt::DeviceCoordinates)
1322  painter->setWorldTransform(QTransform());
1323 
1324  painter->drawPixmap(offset, pixmap);
1325  painter->restore();
1326 }
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:86
double d
Definition: qnumeric_p.h:62
CoordinateSystem
Definition: qnamespace.h:1733
bool sourceIsPixmap() const
Returns true if the source effectively is a pixmap, e.g., a QGraphicsPixmapItem.
QPixmap sourcePixmap(Qt::CoordinateSystem system=Qt::LogicalCoordinates, QPoint *offset=0, PixmapPadMode mode=PadToEffectiveBoundingRect) const
Returns a pixmap with the source painted into it.
void restore()
Restores the current painter state (pops a saved state off the stack).
Definition: qpainter.cpp:1620
QRectF sourceBoundingRect(Qt::CoordinateSystem system=Qt::LogicalCoordinates) const
Returns the bounding rectangle of the source mapped to the given system.
void drawSource(QPainter *painter)
Draws the source directly using the given painter.
QTransform & translate(qreal dx, qreal dy)
Moves the coordinate system dx along the x axis and dy along the y axis, and returns a reference to t...
Definition: qtransform.cpp:417
#define Q_D(Class)
Definition: qglobal.h:2482
void save()
Saves the current painter state (pushes the state onto a stack).
Definition: qpainter.cpp:1590
The QGraphicsOpacityEffect class provides an opacity effect.
const QTransform & worldTransform() const
Returns the world transformation matrix.
Definition: qpainter.cpp:9652
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
void setWorldTransform(const QTransform &matrix, bool combine=false)
Sets the world transformation matrix.
Definition: qpainter.cpp:9630
QRect rect() const
Returns the pixmap&#39;s enclosing rectangle.
Definition: qpixmap.cpp:676
int y() const
Returns the y coordinate of this point.
Definition: qpoint.h:131
The QPixmap class is an off-screen image representation that can be used as a paint device...
Definition: qpixmap.h:71
void drawPixmap(const QRectF &targetRect, const QPixmap &pixmap, const QRectF &sourceRect)
Draws the rectangular portion source of the given pixmap into the given target in the paint device...
Definition: qpainter.cpp:5619
static QTransform fromTranslate(qreal dx, qreal dy)
Creates a matrix which corresponds to a translation of dx along the x axis and dy along the y axis...
Definition: qtransform.cpp:462
RenderHints renderHints() const
Returns a flag that specifies the rendering hints that are set for this painter.
Definition: qpainter.cpp:7675
int x() const
Returns the x coordinate of this point.
Definition: qpoint.h:128
void setOpacity(qreal opacity)
Sets the opacity of the painter to opacity.
Definition: qpainter.cpp:2139
bool isNull() const
Returns true if this is a null pixmap; otherwise returns false.
Definition: qpixmap.cpp:615
The QTransform class specifies 2D transformations of a coordinate system.
Definition: qtransform.h:65

◆ opacity()

qreal QGraphicsOpacityEffect::opacity ( ) const

◆ opacityChanged

void QGraphicsOpacityEffect::opacityChanged ( qreal  opacity)
signal

This signal is emitted whenever the effect's opacity changes.

The opacity parameter holds the effect's new opacity.

Referenced by setOpacity().

◆ opacityMask()

QBrush QGraphicsOpacityEffect::opacityMask ( ) const

Referenced by setOpacity().

◆ opacityMaskChanged

void QGraphicsOpacityEffect::opacityMaskChanged ( const QBrush mask)
signal

This signal is emitted whenever the effect's opacity mask changes.

The mask parameter holds the effect's new opacity mask.

Referenced by setOpacityMask().

◆ setOpacity

void QGraphicsOpacityEffect::setOpacity ( qreal  opacity)
slot

Definition at line 1207 of file qgraphicseffect.cpp.

1208 {
1210  opacity = qBound(qreal(0.0), opacity, qreal(1.0));
1211 
1212  if (qFuzzyCompare(d->opacity, opacity))
1213  return;
1214 
1215  d->opacity = opacity;
1216  if ((d->isFullyTransparent = qFuzzyIsNull(d->opacity)))
1217  d->isFullyOpaque = 0;
1218  else
1219  d->isFullyOpaque = qFuzzyIsNull(d->opacity - 1);
1220  update();
1222 }
double d
Definition: qnumeric_p.h:62
double qreal
Definition: qglobal.h:1193
qreal opacity() const
static Q_DECL_CONSTEXPR bool qFuzzyCompare(double p1, double p2)
Definition: qglobal.h:2030
#define Q_D(Class)
Definition: qglobal.h:2482
#define emit
Definition: qobjectdefs.h:76
void opacityChanged(qreal opacity)
This signal is emitted whenever the effect&#39;s opacity changes.
The QGraphicsOpacityEffect class provides an opacity effect.
Q_DECL_CONSTEXPR const T & qBound(const T &min, const T &val, const T &max)
Definition: qglobal.h:1219
void update()
Schedules a redraw of the effect.
static Q_DECL_CONSTEXPR bool qFuzzyIsNull(double d)
Definition: qglobal.h:2043

◆ setOpacityMask

void QGraphicsOpacityEffect::setOpacityMask ( const QBrush mask)
slot

Definition at line 1257 of file qgraphicseffect.cpp.

1258 {
1260  if (d->opacityMask == mask)
1261  return;
1262 
1263  d->opacityMask = mask;
1264  d->hasOpacityMask = (mask.style() != Qt::NoBrush);
1265  update();
1266 
1267  emit opacityMaskChanged(mask);
1268 }
double d
Definition: qnumeric_p.h:62
void opacityMaskChanged(const QBrush &mask)
This signal is emitted whenever the effect&#39;s opacity mask changes.
#define Q_D(Class)
Definition: qglobal.h:2482
#define emit
Definition: qobjectdefs.h:76
Qt::BrushStyle style() const
Returns the brush style.
Definition: qbrush.h:182
The QGraphicsOpacityEffect class provides an opacity effect.
void update()
Schedules a redraw of the effect.

Properties

◆ opacity

qreal QGraphicsOpacityEffect::opacity
private

the opacity of the effect.

The value should be in the range of 0.0 to 1.0, where 0.0 is fully transparent and 1.0 is fully opaque.

By default, the opacity is 0.7.

See also
setOpacityMask()

Definition at line 258 of file qgraphicseffect.h.

◆ opacityMask

QBrush QGraphicsOpacityEffect::opacityMask
private

the opacity mask of the effect.

An opacity mask allows you apply opacity to portions of an element.

For example:

...
QLinearGradient alphaGradient(rect.topLeft(), rect.bottomLeft());
alphaGradient.setColorAt(0.0, Qt::transparent);
alphaGradient.setColorAt(0.5, Qt::black);
alphaGradient.setColorAt(1.0, Qt::transparent);
effect->setOpacityMask(alphaGradient);
...

There is no opacity mask by default.

See also
setOpacity()

Definition at line 259 of file qgraphicseffect.h.


The documentation for this class was generated from the following files: