Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions | ![]() |
The QRegion class specifies a clip region for a painter. More...
#include <QRegion>
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.
QRegion::Rectangle | the region covers the entire rectangle. |
QRegion::Ellipse | 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.
Creates a new region occupying the area of the polygon defined by the points in the point array a. The shape of the polygon may differ depending on the value of winding which if true causes the shape to be filled using the Winding algorithm, and if false casues it to be filled using the Odd-Even algorithm.
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 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 © 2004 Trolltech. | Trademarks | Qt 4.0.0-tp1 |