CopperSpice API
1.9.2
|
The QRegion class specifies a clip region for a painter. More...
Public Types | |
enum | RegionType |
Public Methods | |
QRegion () | |
QRegion (const QBitmap &bitmap) | |
QRegion (const QPolygon &polygon, Qt::FillRule fillRule=Qt::OddEvenFill) | |
QRegion (const QRect &rect, RegionType t=Rectangle) | |
QRegion (const QRegion &other) | |
QRegion (int x, int y, int w, int h, RegionType t=Rectangle) | |
QRect | boundingRect () const |
bool | contains (const QPoint &point) const |
bool | contains (const QRect &rect) const |
QRegion | intersected (const QRect &rect) const |
QRegion | intersected (const QRegion ®ion) const |
bool | intersects (const QRect &rect) const |
bool | intersects (const QRegion ®ion) const |
bool | isEmpty () const |
bool | isNull () const |
operator QVariant () const | |
bool | operator!= (const QRegion &other) const |
QRegion | operator& (const QRect &rect) const |
QRegion | operator& (const QRegion &other) const |
QRegion & | operator&= (const QRect &rect) |
QRegion & | operator&= (const QRegion &other) |
QRegion | operator+ (const QRect &rect) const |
QRegion | operator+ (const QRegion &other) const |
QRegion & | operator+= (const QRect &rect) |
QRegion & | operator+= (const QRegion &other) |
QRegion | operator- (const QRegion &other) const |
QRegion & | operator-= (const QRegion &other) |
QRegion & | operator= (const QRegion &other) |
QRegion & | operator= (QRegion &&other) |
bool | operator== (const QRegion &other) const |
QRegion | operator^ (const QRegion &other) const |
QRegion & | operator^= (const QRegion &other) |
QRegion | operator| (const QRegion &other) const |
QRegion & | operator|= (const QRegion &other) |
int | rectCount () const |
QVector< QRect > | rects () const |
void | setRects (const QRect *rects, int rectCount) |
QRegion | subtracted (const QRegion ®ion) const |
void | swap (QRegion &other) |
void | translate (const QPoint &point) |
void | translate (int dx, int dy) |
QRegion | translated (const QPoint &point) const |
QRegion | translated (int dx, int dy) const |
QRegion | united (const QRect &rect) const |
QRegion | united (const QRegion ®ion) const |
QRegion | xored (const QRegion ®ion) const |
Friends | |
QDataStream & | operator<< (QDataStream &stream, const QRegion ®ion) |
QDataStream & | operator>> (QDataStream &stream, QRegion ®ion) |
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 minimizing the amount of screen area to be updated by a repaint.
This class is not suitable for constructing shapes for rendering, especially as outlines. Use QPainterPath to create paths and shapes for use with QPainter.
QRegion is an implicitly shared class.
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 united(), intersected(), subtracted(), or xored() (exclusive or). You can move a region using translate().
You can test whether a region 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:
On X11 platforms parts of this class rely on code obtained under the following licenses:
Copyright (c) 1987 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium.
enum QRegion::RegionType |
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. |
QRegion::QRegion | ( | ) |
Constructs an empty region.
QRegion::QRegion | ( | int | x, |
int | y, | ||
int | w, | ||
int | h, | ||
RegionType | t = Rectangle |
||
) |
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).
QRegion::QRegion | ( | const QRect & | rect, |
RegionType | t = Rectangle |
||
) |
Create a region based on the rectangle rect with region type t. If the rectangle is invalid a null region will be created.
QRegion::QRegion | ( | const QPolygon & | polygon, |
Qt::FillRule | fillRule = Qt::OddEvenFill |
||
) |
Constructs a polygon region from the point array polygon 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.
QRegion::QRegion | ( | const QRegion & | other | ) |
Copy constructs a new QRegion from other.
QRegion::QRegion | ( | const QBitmap & | bitmap | ) |
Constructs a region from the bitmap.
The resulting region consists of the pixels in bitmap that are Qt::color1, as if each pixel was a 1 by 1 rectangle. This constructor may create complex regions that will slow down painting when used. Drawing masked pixmaps can be done much faster using QPixmap::setMask().
QRect QRegion::boundingRect | ( | ) | const |
Returns the bounding rectangle of this region. An empty region gives a rectangle that is QRect::isNull().
bool QRegion::contains | ( | const QPoint & | point | ) | const |
Returns true if the region contains the given point, otherwise returns false.
bool QRegion::contains | ( | const QRect & | rect | ) | const |
Returns true if the region overlaps the rectangle rect, otherwise returns false.
QRegion QRegion::intersected | ( | const QRect & | rect | ) | const |
Returns a region which is the intersection of this region and the given rect.
QRegion QRegion::intersected | ( | const QRegion & | region | ) | const |
Returns a region which is the intersection of this QRegion and region. The following figure shows the intersection of two elliptical regions.
bool QRegion::intersects | ( | const QRect & | rect | ) | const |
Returns true if this region intersects with rect, otherwise returns false.
bool QRegion::intersects | ( | const QRegion & | region | ) | const |
Returns true if this region intersects with region, otherwise returns false.
bool QRegion::isEmpty | ( | ) | const |
Returns true if the region is empty, otherwise returns false. An empty region is a region that contains no points.
bool QRegion::isNull | ( | ) | const |
Returns true if the region is empty, otherwise returns false. An empty region is a region that contains no points. Equivalent to calling isEmpty().
|
inline |
Returns true if this region is different from the other region, otherwise returns false.
QRegion QRegion::operator& | ( | const QRect & | rect | ) | const |
This is an overloaded function.
QRegion QRegion::operator& | ( | const QRegion & | other | ) | const |
Applies the intersected() method to the current QRegion and other. The calculation r1 & r2
is equivalent to r1.intersected(r2)
.
QRegion & QRegion::operator&= | ( | const QRect & | rect | ) |
This is an overloaded function.
QRegion & QRegion::operator&= | ( | const QRegion & | other | ) |
Applies the intersected() method to this QRegion and other and assigns the result to this region. The calculation r1 &= r2
is equivalent to r1
= r1.intersected(r2).
QRegion QRegion::operator+ | ( | const QRect & | rect | ) | const |
This is an overloaded function.
QRegion QRegion::operator+ | ( | const QRegion & | other | ) | const |
Applies the united() method to this QRegion and other. The calculation r1 + r2
is equivalent to r1.united(r2)
.
QRegion & QRegion::operator+= | ( | const QRect & | rect | ) |
Returns a region that is the union of this QRegion with the specified rect.
QRegion & QRegion::operator+= | ( | const QRegion & | other | ) |
Applies the united() method to this QRegion and other and assigns the result to this region. The calculation r1 += r2
is equivalent to r1 = r1.united(r2)
.
QRegion QRegion::operator- | ( | const QRegion & | other | ) | const |
Applies the subtracted() method to this QRegion and other . The calculation r1 - r2
is equivalent to r1.subtracted(r2)
.
QRegion & QRegion::operator-= | ( | const QRegion & | other | ) |
Applies the subtracted() method to this QRegion and other and assigns the result to this region. The calculation r1 -= r2
is equivalent to r1 = r1.subtracted(r2)
.
QRegion & QRegion::operator= | ( | const QRegion & | other | ) |
Copy assigns from other and returns a reference to this object.
|
inline |
Move assigns from other and returns a reference to this object.
bool QRegion::operator== | ( | const QRegion & | other | ) | const |
Returns true if this QRegion is equal to other, otherwise returns false.
QRegion QRegion::operator^ | ( | const QRegion & | other | ) | const |
QRegion & QRegion::operator^= | ( | const QRegion & | other | ) |
QRegion QRegion::operator| | ( | const QRegion & | other | ) | const |
Applies the united() method to this QRegion and other. The calculation r1 | r2
is equivalent to r1.united(r2)
.
QRegion & QRegion::operator|= | ( | const QRegion & | other | ) |
int QRegion::rectCount | ( | ) | const |
Returns the number of rectangles that will be returned in rects().
Returns an array of non-overlapping rectangles that make up the region. The union of all the rectangles is equal to the original region.
void QRegion::setRects | ( | const QRect * | rects, |
int | rectCount | ||
) |
Sets the region using the array of rectangles specified by rects and rectCount. The rectangles must be optimally Y-X sorted and follow these restrictions.
QRegion QRegion::subtracted | ( | const QRegion & | region | ) | const |
Returns a region which is the passed region subtracted from the current QRegion. The following figure shows the result when the ellipse on the right is subtracted from the ellipse on the left (left - right
).
|
inline |
Swaps region other with this region. This operation is very fast and never fails.
|
inline |
Translates the region point.x() along the x axis and point.y() along the y axis, relative to the current position. Positive values move the region to the right and down.
Translates to the given point.
void QRegion::translate | ( | int | dx, |
int | dy | ||
) |
Translates (moves) the region dx along the X axis and dy along the Y axis.
|
inline |
Returns a copy of the region that is translated point.x() along the x axis and point.y() along the y axis, relative to the current position. Positive values move the rectangle to the right and down.
QRegion QRegion::translated | ( | int | dx, |
int | dy | ||
) | const |
Returns a copy of the region that is translated dx along the x axis and y along the y axis, relative to the current position. Positive values move the region to the right and down.
QRegion QRegion::united | ( | const QRect & | rect | ) | const |
Returns a region which is the union of this region and the given rect.
QRegion QRegion::united | ( | const QRegion & | region | ) | const |
Returns a region which is the union of this QRegion and region. The following figure shows the union of two elliptical regions.
QRegion QRegion::xored | ( | const QRegion & | region | ) | const |
Returns a region which is the exclusive or (XOR) of this QRegion and region. The following figure shows the exclusive or of two elliptical regions.
|
friend |
Writes the region to the stream and returns a reference to the stream.
Refer to Serializing Data Types for additional information.
|
friend |
Reads region from the stream and returns a reference to the stream.
Refer to Serializing Data Types for additional information.