|
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.core.QRect
public class QRect
The QRect class defines a rectangle in the plane using integer precision.
A rectangle is normally expressed as an upper-left corner and a size. The size (width and height) of a QRect is always equivalent to the mathematical rectangle that forms the basis for its rendering.
A QRect can be constructed with a set of left, top, width and height integers, or from a QPoint and a QSize. The following code creates two identical rectangles.
QRect r1(100, 200, 11, 16); QRect r2(QPoint(100, 200), QSize(11, 16));
There is a third constructor that creates a QRect using the top-left and bottom-right coordinates, but we recommend that you avoid using it. The rationale is that for historical reasons the values returned by the bottom and right functions deviate from the true bottom-right corner of the rectangle.
The QRect class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRect also provide functions to move the rectangle relative to the various coordinates. In addition there is a moveTo function that moves the rectangle, leaving its top left corner at the given coordinates. Alternatively, the translate function moves the rectangle the given offset relative to the current position, and the translated function returns a translated copy of this rectangle.
The size function returns the rectange's dimensions as a QSize. The dimensions can also be retrieved separately using the width and height functions. To manipulate the dimensions use the setSize, setWidth or setHeight functions. Alternatively, the size can be changed by applying either of the functions setting the rectangle coordinates, for example, setBottom or setRight.
The contains function tells whether a given point is inside the rectangle or not, and the intersects function returns true if this rectangle intersects with a given rectangle. The QRect class also provides the intersected function which returns the intersection rectangle, and the united function which returns the rectangle that encloses the given rectangle and this:
![]() | ![]() |
intersected | united |
The isEmpty function returns true if left > right or top > bottom. Note that an empty rectangle is not valid: The isValid function returns true if left <= right and top <= bottom. A null rectangle (isNull == true) on the other hand, has both width and height set to 0.
Note that due to the way QRect and QRectF are defined, an empty QRect is defined in essentially the same way as QRectF.
Finally, QRect objects can be streamed as well as compared.
When using an anti-aliased painter, the boundary line of a QRect will be rendered symmetrically on both sides of the mathematical rectangle's boundary line. But when using an aliased painter (the default) other rules apply.
Then, when rendering with a one pixel wide pen the QRect's boundary line will be rendered to the right and below the mathematical rectangle's boundary line.
When rendering with a two pixels wide pen the boundary line will be split in the middle by the mathematical rectangle. This will be the case whenever the pen is set to an even number of pixels, while rendering with a pen with an odd number of pixels, the spare pixel will be rendered to the right and below the mathematical rectangle as in the one pixel case.
![]() | ![]() |
Logical representation | One pixel wide pen |
![]() | ![]() |
Two pixel wide pen | Three pixel wide pen |
The QRect class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRect also provide functions to move the rectangle relative to the various coordinates.
For example the left, setLeft and moveLeft functions as an example: left returns the x-coordinate of the rectangle's left edge, setLeft sets the left edge of the rectangle to the given x coordinate (it may change the width, but will never change the rectangle's right edge) and moveLeft moves the entire rectangle horizontally, leaving the rectangle's left edge at the given x coordinate and its size unchanged.
Note that for historical reasons the values returned by the bottom and right functions deviate from the true bottom-right corner of the rectangle: The right function returns left + width - 1 and the bottom function returns top + height - 1. The same is the case for the point returned by the bottomRight convenience function. In addition, the x and y coordinate of the topRight and bottomLeft functions, respectively, contain the same deviation from the true right and bottom edges.
We recommend that you use x + width and y + height to find the true bottom-right corner, and avoid right and bottom. Another solution is to use QRectF: The QRectF class defines a rectangle in the plane using floating point accuracy for coordinates, and the QRectF::right() and QRectF::bottom() functions do return the right and bottom coordinates.
It is also possible to add offsets to this rectangle's coordinates using the adjust function, as well as retrieve a new rectangle based on adjustments of the original one using the adjusted function. If either of the width and height is negative, use the normalized function to retrieve a rectangle where the corners are swapped.
In addition, QRect provides the getCoords() function which extracts the position of the rectangle's top-left and bottom-right corner, and the getRect() function which extracts the rectangle's top-left corner, width and height. Use the setCoords and setRect function to manipulate the rectangle's coordinates and dimensions in one go.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter |
---|
QSignalEmitter.Signal0, QSignalEmitter.Signal1<A>, QSignalEmitter.Signal2<A,B>, QSignalEmitter.Signal3<A,B,C>, QSignalEmitter.Signal4<A,B,C,D>, QSignalEmitter.Signal5<A,B,C,D,E>, QSignalEmitter.Signal6<A,B,C,D,E,F>, QSignalEmitter.Signal7<A,B,C,D,E,F,G>, QSignalEmitter.Signal8<A,B,C,D,E,F,G,H>, QSignalEmitter.Signal9<A,B,C,D,E,F,G,H,I> |
Constructor Summary | |
---|---|
QRect()
Constructs a null rectangle. |
|
QRect(int left,
int top,
int width,
int height)
Constructs a rectangle with (left, top) as its top-left corner and the given width and height. |
|
QRect(QPoint topleft,
QPoint bottomright)
Constructs a rectangle with the given topleft and bottomright corners. |
|
QRect(QPoint topleft,
QSize size)
Constructs a rectangle with the given topleft corner and the given size. |
Method Summary | |
---|---|
void |
adjust(int x1,
int y1,
int x2,
int y2)
Adds x1, y1, x2 and y2 respectively to the existing coordinates of the rectangle. |
QRect |
adjusted(int x1,
int y1,
int x2,
int y2)
Returns a new rectangle with x1, y1, x2 and y2 added respectively to the existing coordinates of this rectangle. |
int |
bottom()
Returns the y-coordinate of the rectangle's bottom edge. |
QPoint |
bottomLeft()
Returns the position of the rectangle's bottom-left corner. |
QPoint |
bottomRight()
Returns the position of the rectangle's bottom-right corner. |
QPoint |
center()
Returns the center point of the rectangle. |
boolean |
contains(int x,
int y)
Returns true if the point (x, y) is inside this rectangle, otherwise returns false. |
boolean |
contains(int x,
int y,
boolean proper)
Returns true if the point (x, y) is inside or on the edge of the rectangle, otherwise returns false. |
boolean |
contains(QPoint p)
Equivalent to contains(p, false). |
boolean |
contains(QPoint p,
boolean proper)
Returns true if the the given p is inside or on the edge of the rectangle, otherwise returns false. |
boolean |
contains(QRect r)
Equivalent to contains(r, false). |
boolean |
contains(QRect r,
boolean proper)
Returns true if the given r is inside this rectangle. |
boolean |
equals(java.lang.Object other)
|
static QRect |
fromNativePointer(QNativePointer nativePointer)
This function returns the QRect instance pointed to by nativePointer |
int |
height()
Returns the height of the rectangle. |
QRect |
intersected(QRect other)
Returns the intersection of this rectangle and the given other. |
boolean |
intersects(QRect r)
Returns true if this rectangle intersects with the given r (i.e., there is at least one pixel that is within both rectangles), otherwise returns false. |
boolean |
isEmpty()
Returns true if the rectangle is empty, otherwise returns false. |
boolean |
isNull()
Returns true if the rectangle is a null rectangle, otherwise returns false. |
boolean |
isValid()
Returns true if the rectangle is valid, otherwise returns false. |
int |
left()
Returns the x-coordinate of the rectangle's left edge. |
void |
moveBottom(int pos)
Moves the rectangle vertically, leaving the rectangle's bottom edge at the given pos coordinate. |
void |
moveBottomLeft(QPoint p)
Moves the rectangle, leaving the bottom-left corner at the given p. |
void |
moveBottomRight(QPoint p)
Moves the rectangle, leaving the bottom-right corner at the given p. |
void |
moveCenter(QPoint p)
Moves the rectangle, leaving the center point at the given p. |
void |
moveLeft(int pos)
Moves the rectangle horizontally, leaving the rectangle's left edge at the given pos coordinate. |
void |
moveRight(int pos)
Moves the rectangle horizontally, leaving the rectangle's right edge at the given pos coordinate. |
void |
moveTo(int x,
int t)
Moves the rectangle, leaving the top-left corner at the given position (x, t). |
void |
moveTo(QPoint p)
Moves the rectangle, leaving the top-left corner at the given p. |
void |
moveTop(int pos)
Moves the rectangle vertically, leaving the rectangle's top edge at the given pos coordinate. |
void |
moveTopLeft(QPoint p)
Moves the rectangle, leaving the top-left corner at the given p. |
void |
moveTopRight(QPoint p)
Moves the rectangle, leaving the top-right corner at the given p. |
static QNativePointer |
nativePointerArray(QRect[] array)
This function returns a QNativePointer that is pointing to the specified QRect array. |
QRect |
normalized()
Returns a normalized rectangle; i.e., a rectangle that has a non-negative width and height. |
void |
readFrom(QDataStream arg__1)
Reads a QRect from arg__1. |
int |
right()
Returns the x-coordinate of the rectangle's right edge. |
void |
setBottom(int pos)
Sets the bottom edge of the rectangle to the given pos coordinate. |
void |
setBottomLeft(QPoint p)
Set the bottom-left corner of the rectangle to the given p. |
void |
setBottomRight(QPoint p)
Set the bottom-right corner of the rectangle to the given p. |
void |
setCoords(int x1,
int y1,
int x2,
int y2)
Sets the coordinates of the rectangle's top-left corner to (x1, y1), and the coordinates of its bottom-right corner to (x2, y2). |
void |
setHeight(int h)
Sets the height of the rectangle to the given h. |
void |
setLeft(int pos)
Sets the left edge of the rectangle to the given pos coordinate. |
void |
setRect(int x,
int y,
int w,
int h)
Sets the coordinates of the rectangle's top-left corner to (x, y), and its size to the given w and h. |
void |
setRight(int pos)
Sets the right edge of the rectangle to the given pos coordinate. |
void |
setSize(QSize s)
Sets the size of the rectangle to the given s. |
void |
setTop(int pos)
Sets the top edge of the rectangle to the given pos coordinate. |
void |
setTopLeft(QPoint p)
Set the top-left corner of the rectangle to the given p. |
void |
setTopRight(QPoint p)
Set the top-right corner of the rectangle to the given p. |
void |
setWidth(int w)
Sets the width of the rectangle to the given w. |
void |
setX(int x)
Sets the left edge of the rectangle to the given x coordinate. |
void |
setY(int y)
Sets the top edge of the rectangle to the given y coordinate. |
QSize |
size()
Returns the size of the rectangle. |
int |
top()
Returns the y-coordinate of the rectangle's top edge. |
QPoint |
topLeft()
Returns the position of the rectangle's top-left corner. |
QPoint |
topRight()
Returns the position of the rectangle's top-right corner. |
void |
translate(int dx,
int dy)
Moves the rectangle dx along the x axis and dy along the y axis, relative to the current position. |
void |
translate(QPoint p)
Moves the rectangle p.x() along the x axis and p.y() along the y axis, relative to the current position. |
QRect |
translated(int dx,
int dy)
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis, relative to the current position. |
QRect |
translated(QPoint p)
Returns a copy of the rectangle that is translated p.x() along the x axis and p.y() along the y axis, relative to the current position. |
QRect |
united(QRect other)
Returns the bounding rectangle of this rectangle and the given other. |
int |
width()
Returns the width of the rectangle. |
void |
writeTo(QDataStream arg__1)
Writes thisQRect to arg__1. |
int |
x()
Returns the x-coordinate of the rectangle's left edge. |
int |
y()
Returns the y-coordinate of the rectangle's top edge. |
Methods inherited from class com.trolltech.qt.QtJambiObject |
---|
dispose, disposed, finalize, reassignNativeResources, tr, tr, tr |
Methods inherited from class com.trolltech.qt.QSignalEmitter |
---|
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.trolltech.qt.QtJambiInterface |
---|
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership |
Constructor Detail |
---|
public QRect()
Constructs a null rectangle.
public QRect(QPoint topleft, QSize size)
Constructs a rectangle with the given topleft corner and the given size.
public QRect(QPoint topleft, QPoint bottomright)
Constructs a rectangle with the given topleft and bottomright corners.
public QRect(int left, int top, int width, int height)
Constructs a rectangle with (left, top) as its top-left corner and the given width and height.
Method Detail |
---|
public final void adjust(int x1, int y1, int x2, int y2)
Adds x1, y1, x2 and y2 respectively to the existing coordinates of the rectangle.
public final QRect adjusted(int x1, int y1, int x2, int y2)
Returns a new rectangle with x1, y1, x2 and y2 added respectively to the existing coordinates of this rectangle.
public final int bottom()
Returns the y-coordinate of the rectangle's bottom edge.
Note that for historical reasons this function returns top + height - 1; use y + height to retrieve the true y-coordinate.
public final QPoint bottomLeft()
Returns the position of the rectangle's bottom-left corner. Note that for historical reasons this function returns QPoint(left, top + height - 1).
public final QPoint bottomRight()
Returns the position of the rectangle's bottom-right corner.
Note that for historical reasons this function returns QPoint(left + width -1, top + height - 1).
public final QPoint center()
Returns the center point of the rectangle.
public final boolean contains(int x, int y)
Returns true if the point (x, y) is inside this rectangle, otherwise returns false.
public final boolean contains(QRect r)
Equivalent to contains(r, false).
public final boolean contains(QRect r, boolean proper)
Returns true if the given r is inside this rectangle. otherwise returns false. If proper is true, this function only returns true if the r is entirely inside this rectangle (not on the edge).
public final boolean contains(int x, int y, boolean proper)
Returns true if the point (x, y) is inside or on the edge of the rectangle, otherwise returns false. If proper is true, this function only returns true if the point is entirely inside the rectangle(not on the edge).
public final boolean contains(QPoint p)
Equivalent to contains(p, false).
public final boolean contains(QPoint p, boolean proper)
Returns true if the the given p is inside or on the edge of the rectangle, otherwise returns false. If proper is true, this function only returns true if the given p is inside the rectangle (i.e., not on the edge).
public final int height()
Returns the height of the rectangle.
public final QRect intersected(QRect other)
Returns the intersection of this rectangle and the given other. Note that r.intersected(s) is equivalent to r & s.
public final boolean intersects(QRect r)
Returns true if this rectangle intersects with the given r (i.e., there is at least one pixel that is within both rectangles), otherwise returns false.
The intersection rectangle can be retrieved using the intersected function.
public final boolean isEmpty()
Returns true if the rectangle is empty, otherwise returns false.
An empty rectangle has a left > right or top > bottom. An empty rectangle is not valid (i.e., isEmpty == !isValid).
Use the normalized function to retrieve a rectangle where the corners are swapped.
public final boolean isNull()
Returns true if the rectangle is a null rectangle, otherwise returns false.
A null rectangle has both the width and the height set to 0 (i.e., right == left - 1 and bottom == top - 1). A null rectangle is also empty, and hence is not valid.
public final boolean isValid()
Returns true if the rectangle is valid, otherwise returns false.
A valid rectangle has a left < right and top < bottom. Note that non-trivial operations like intersections are not defined for invalid rectangles. A valid rectangle is not empty (i.e., isValid == !isEmpty).
public final int left()
Returns the x-coordinate of the rectangle's left edge. Equivalent to x.
public final void moveBottom(int pos)
Moves the rectangle vertically, leaving the rectangle's bottom edge at the given pos coordinate. The rectangle's size is unchanged.
public final void moveBottomLeft(QPoint p)
Moves the rectangle, leaving the bottom-left corner at the given p. The rectangle's size is unchanged.
public final void moveBottomRight(QPoint p)
Moves the rectangle, leaving the bottom-right corner at the given p. The rectangle's size is unchanged.
public final void moveCenter(QPoint p)
Moves the rectangle, leaving the center point at the given p. The rectangle's size is unchanged.
public final void moveLeft(int pos)
Moves the rectangle horizontally, leaving the rectangle's left edge at the given pos coordinate. The rectangle's size is unchanged.
public final void moveRight(int pos)
Moves the rectangle horizontally, leaving the rectangle's right edge at the given pos coordinate. The rectangle's size is unchanged.
public final void moveTo(int x, int t)
Moves the rectangle, leaving the top-left corner at the given position (x, t). The rectangle's size is unchanged.
public final void moveTo(QPoint p)
Moves the rectangle, leaving the top-left corner at the given p.
public final void moveTop(int pos)
Moves the rectangle vertically, leaving the rectangle's top edge at the given pos coordinate. The rectangle's size is unchanged.
public final void moveTopLeft(QPoint p)
Moves the rectangle, leaving the top-left corner at the given p. The rectangle's size is unchanged.
public final void moveTopRight(QPoint p)
Moves the rectangle, leaving the top-right corner at the given p. The rectangle's size is unchanged.
public final QRect normalized()
Returns a normalized rectangle; i.e., a rectangle that has a non-negative width and height.
If width < 0 the function swaps the left and right corners, and it swaps the top and bottom corners if height < 0.
public final void writeTo(QDataStream arg__1)
public final void readFrom(QDataStream arg__1)
public final int right()
Returns the x-coordinate of the rectangle's right edge.
Note that for historical reasons this function returns left + width - 1; use x + width to retrieve the true x-coordinate.
public final void setBottom(int pos)
Sets the bottom edge of the rectangle to the given pos coordinate. May change the height, but will never change the top edge of the rectangle.
public final void setBottomLeft(QPoint p)
Set the bottom-left corner of the rectangle to the given p. May change the size, but will the never change the top-right corner of the rectangle.
public final void setBottomRight(QPoint p)
Set the bottom-right corner of the rectangle to the given p. May change the size, but will the never change the top-left corner of the rectangle.
public final void setCoords(int x1, int y1, int x2, int y2)
Sets the coordinates of the rectangle's top-left corner to (x1, y1), and the coordinates of its bottom-right corner to (x2, y2).
public final void setHeight(int h)
Sets the height of the rectangle to the given h. The bottom edge is changed, but not the top one.
public final void setLeft(int pos)
Sets the left edge of the rectangle to the given pos coordinate. May change the width, but will never change the right edge of the rectangle.
Equivalent to setX.
public final void setRect(int x, int y, int w, int h)
Sets the coordinates of the rectangle's top-left corner to (x, y), and its size to the given w and h.
public final void setRight(int pos)
Sets the right edge of the rectangle to the given pos coordinate. May change the width, but will never change the left edge of the rectangle.
public final void setSize(QSize s)
Sets the size of the rectangle to the given s. The top-left corner is not moved.
public final void setTop(int pos)
Sets the top edge of the rectangle to the given pos coordinate. May change the height, but will never change the bottom edge of the rectangle.
Equivalent to setY.
public final void setTopLeft(QPoint p)
Set the top-left corner of the rectangle to the given p. May change the size, but will the never change the bottom-right corner of the rectangle.
public final void setTopRight(QPoint p)
Set the top-right corner of the rectangle to the given p. May change the size, but will the never change the bottom-left corner of the rectangle.
public final void setWidth(int w)
Sets the width of the rectangle to the given w. The right edge is changed, but not the left one.
public final void setX(int x)
Sets the left edge of the rectangle to the given x coordinate. May change the width, but will never change the right edge of the rectangle.
Equivalent to setLeft.
public final void setY(int y)
Sets the top edge of the rectangle to the given y coordinate. May change the height, but will never change the bottom edge of the rectangle.
Equivalent to setTop.
public final QSize size()
Returns the size of the rectangle.
public final int top()
Returns the y-coordinate of the rectangle's top edge. Equivalent to y.
public final QPoint topLeft()
Returns the position of the rectangle's top-left corner.
public final QPoint topRight()
Returns the position of the rectangle's top-right corner.
Note that for historical reasons this function returns QPoint(left + width -1, top).
public final void translate(int dx, int dy)
Moves the rectangle dx along the x axis and dy along the y axis, relative to the current position. Positive values move the rectangle to the right and down.
public final void translate(QPoint p)
Moves the rectangle p.x() along the x axis and p.y() along the y axis, relative to the current position.
public final QRect translated(int dx, int dy)
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis, relative to the current position. Positive values move the rectangle to the right and down.
public final QRect translated(QPoint p)
Returns a copy of the rectangle that is translated p.x() along the x axis and p.y() along the y axis, relative to the current position.
public final QRect united(QRect other)
Returns the bounding rectangle of this rectangle and the given other.
public final int width()
Returns the width of the rectangle.
public final int x()
Returns the x-coordinate of the rectangle's left edge. Equivalent to left.
public final int y()
Returns the y-coordinate of the rectangle's top edge. Equivalent to top.
public static QRect fromNativePointer(QNativePointer nativePointer)
nativePointer
- the QNativePointer of which object should be returned.public static QNativePointer nativePointerArray(QRect[] array)
array
- the array that the returned pointer will point to.
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
|
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |