![]() |
Home · All Classes · Main Classes · Annotated · Grouped Classes · Functions | ![]() |
The QRegion class specifies a clip region for a painter. More...
#include <QRegion>
Part of the QtGui module.
The QRegion class specifies a clip region for a painter.
QRegion is used with QPainter::setClipRegion() to limit the paint area to what needs to be painted. There is also a QWidget::repaint() function that takes a QRegion parameter. QRegion is the best tool for reducing flicker.
A region can be created from a rectangle, an ellipse, a polygon or a bitmap. Complex regions may be created by combining simple regions using unite(), intersect(), subtract(), or eor() (exclusive or). You can move a region using translate().
You can test whether a region isNull(), isEmpty() or if it contains() a QPoint or QRect. The bounding rectangle can be found with boundingRect().
The function rects() gives a decomposition of the region into rectangles.
Example of using complex regions:
void MyWidget::paintEvent(QPaintEvent *) { QPainter p; // our painter QRegion r1(QRect(100,100,200,80), // r1 = elliptic region QRegion::Ellipse); QRegion r2(QRect(100,120,90,30)); // r2 = rectangular region QRegion r3 = r1.intersect(r2); // r3 = intersection p.begin(this); // start painting widget p.setClipRegion(r3); // set clip region ... // paint clipped graphics p.end(); // painting done }
QRegion is an implicitly shared class.
Warning: Due to window system limitations, the whole coordinate space for a region is limited to the points between -32767 and 32767 on Windows 95/98/ME.
See also QPainter::setClipRegion() and QPainter::setClipRect().
Specifies the shape of the region to be created.
Constant | Value | Description |
---|---|---|
QRegion::Rectangle | 0 | the region covers the entire rectangle. |
QRegion::Ellipse | 1 | the region is an ellipse inside the rectangle. |
Creates a new empty region.
See also isEmpty().
Constructs a rectangular or elliptic region.
If t is Rectangle, the region is the filled rectangle (x, y, w, h). If t is Ellipse, the region is the filled ellipse with center at (x + w / 2, y + h / 2) and size (w ,h).
Creates a new region. If t is Rectangle the new region is a rectangle occupying the area of the rectangle r; if t is Ellipse the new region is the largest ellipse that fills the area occupied by the rectangle r.
Constructs a polygon region from the point array a with the fill rule specified by fillRule.
If fillRule is Qt::WindingFill, the polygon region is defined using the winding algorithm; if it is Qt::OddEvenFill, the odd-even fill algorithm is used.
Warning: This constructor can be used to create complex regions that will slow down painting when used.
Creates a new region that is a copy of the region r.
This is fast because QRegion is implicitly shared.
Creates a new region based on the bitmap bm.
Destroys this region.
Returns the smallest bounding rectangle that contains this region.
Returns true if this region contains the point p; otherwise returns false.
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Returns true if this region wholly contains the region r; otherwise returns false.
Returns a region that is the result of exclusive-OR-ing this region with the region r.
Returns the region's handle.
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Returns a region that is the result of intersecting this region with the region r.
Returns true if this region is empty; otherwise returns false.
Returns a (possibly empty) list of the rectangles that constitute this region.
Returns a region that is the result of subtracting the region r from this region.
Translates the region by dx on the x axis and by dy on the y axis.
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Translates to the given point.
Returns a region that is the result of performing a union of this region with the region r.
Returns the region as a QVariant
Returns true if this region is different from the other region; otherwise returns false.
Applies the intersect() function to this region and r. r1&r2 is equivalent to r1.intersect(r2)
See also intersect().
Applies the intersect() function to this region and r and assigns the result to this region. r1&=r2 is equivalent to r1=r1.intersect(r2)
See also intersect().
Applies the unite() function to this region and r. r1+r2 is equivalent to r1.unite(r2)
See also unite() and operator|().
Applies the unite() function to this region and r and assigns the result to this region. r1+=r2 is equivalent to r1=r1.unite(r2)
See also intersect().
Applies the subtract() function to this region and r. r1-r2 is equivalent to r1.subtract(r2)
See also subtract().
Applies the subtract() function to this region and r and assigns the result to this region. r1-=r2 is equivalent to r1=r1.subtract(r2)
See also subtract().
Assigns region r to this region and returns a reference to this region.
Returns true if this region is the same as the region r; otherwise returns false.
Applies the eor() function to this region and r. r1^r2 is equivalent to r1.eor(r2)
See also eor().
Applies the eor() function to this region and r and assigns the result to this region. r1^=r2 is equivalent to r1=r1.eor(r2)
See also eor().
Applies the unite() function to this region and r. r1|r2 is equivalent to r1.unite(r2)
See also unite() and operator+().
Applies the unite() function to this region and r and assigns the result to this region. r1|=r2 is equivalent to r1=r1.unite(r2)
See also unite().
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Writes the region r to the stream s and returns a reference to the stream.
See also Format of the QDataStream operators.
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Reads a region from the stream s into r and returns a reference to the stream.
See also Format of the QDataStream operators.
Copyright © 2005 Trolltech | Trademarks | Qt 4.0.0-b2 |