Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QRect
[модуль QtCore]

Класс QRect определяет прямоугольник на плоскости, использующий целые значения для задания координат. Далее...

#include <QRect>

Открытые Функции

Связанные Не-Члены


Подробное Описание

Класс QRect определяет прямоугольник на плоскости, использующий целые значения для задания координат.

Обычно, задается левый-верхний угол прямоугольника и его размеры.

По умолчанию, начало системы координат (0, 0) располагается в верхнем-левом углу. Положительное направление оси y - сверху вниз, а положительное направление оси x - слева направо.

Размер (ширина и высота) QRect всегда эквивалентны математическаму прямоугольнику, являющемуся основой для его отображения:

Если Вы используете сглаживание граней, то устройство рисования отобразит границы QRect симметрично с обеих сторон математического прямоугольника. Но если сглаживание не испольуется (по умолчанию), то применяются другие правила.

Тогда, при рисовании пером, толщиной в один пиксель, границы QRect будут нарисованы правее и ниже границ математического прямоугольника.

При рисовании пером, толщиной в два пикселя, линия границы будет разделена посередине математическим прямоугольником. Так будет всякий раз, при рисовании пером, толщиной в четное количество пикселей, при рисовании пером, толщиной в нечетное количество пикселей, дополнительный пиксель будет размещаться правее и ниже граний метематического прямоугольника.

Перо толщиной в один пиксельПеро толщиной в два пикселяПеро толщиной в три пикселя

По историческим причинам, right() и bottom() отклоняются от истинного правого-нижнего угла прямоугольника. Функция right() возвращает left() + width() + 1, а функция bottom() возвращает top() + height() + 1. Правые-нижние зеленые точки на вышеприведенной диаграмме показывают координаты, возвращаемые данной функцией. Мы рекомендуем избегать использования функций right() и bottom(), а вместо них, для нахождения координат правого-нижнео угла, использовать x() + width() и y() + height().

Another solution is to use QRectF: The QRectF class defines a rectangle in the plane using floating point coordinates for accuracy (QRect uses integer coordinates), and the QRectF::right() and QRectF::bottom() functions do return the true bottom-right corner.

QRect может быть создан с помощью задания координат левого-верхнего угла, ширины и высоты целыми числами, или с помощью QPoint и QSize. В следующем примере создаются три идентичных прямоугольника.

    QRect r1(100, 200, 11, 16);
    QRect r2(QPoint(100, 200), QSize(11, 16));
    QRect r3(QPoint(100, 200), QPoint(110, 215));  // не рекомендуется

Третий QRect создается с помощью задания координат верхнего-левого и правого-нижнего углов, но мы рекомендуем избегать данного способа, так как, зачастую, он приводит к неожиданному результату (как показано выше).

После создания прямоугольника, можно изменить его характеристики, задавая его координаты, например с помощью setLeft(), setRight(), setTop() и setBottom(), или задавая его размеры, например с помощью setWidth(), setHeight() и setSize(). Характеристики могут быть изменены с помощью функций перемещения, например translate(), moveCenter(), moveBottomRight() и т.д. Вы можете также изменять координаты с помощью adjust(). Вы можете получить новый прямоугольник, основанный на существующем и растянутый, с помощью adjusted(). Проверить, содержит ли QRect определенную точку с помощью contains().

Вы можете проверить, пересекаются ли два QRect с помощью intersects(), и получить область пересечения как QRect с помощью intersect():

Получить прямоугольник, охватывающий два QRect, можно с помощью unite():

См. также QPoint, QSize, QPolygon и QRectF.


Описание Функций-Членов

QRect::QRect ()

Создает нулевой прямоугольник.

См. также isNull().

QRect::QRect ( const QPoint & topLeft, const QPoint & bottomRight )

Создает прямоугольник, в котором topLeft является координатами левого-верхнего угла, а bottomRight является координатами правого-нижнего угла.

QRect::QRect ( const QPoint & topLeft, const QSize & size )

Создает прямоугольник, в котором topLeft является координатами левого-верхнего угла, а size является размерами прямоугольника.

QRect::QRect ( int left, int top, int width, int height )

Создает прямоугольник с координатами левого-верхнего угла top, left, шириной width и высотой height.

void QRect::adjust ( int xp1, int yp1, int xp2, int yp2 )

Добавляет xp1, yp1, xp2 и yp2 к текущим коодинатам прямоугольника соответственно.

См. также adjusted().

QRect QRect::adjusted ( int xp1, int yp1, int xp2, int yp2 ) const

Возвращает вновь созданный прямоугольник, в котором xp1, yp1, xp2 и yp2 добавлены к текущим координатам данного прямоугольника соответственно.

См. также adjust().

int QRect::bottom () const

Возвращает нижнюю координату прямоугольника.

См. также setBottom(), top(), bottomLeft() и bottomRight().

QPoint QRect::bottomLeft () const

Возвращает позицию левого-нижнего угла прямоугольника.

См. также setBottomLeft(), moveBottomLeft(), topRight(), bottom() и left().

QPoint QRect::bottomRight () const

Возвращает позицию правого-нижнего угла прямоугольника.

См. также setBottomRight(), moveBottomRight(), topLeft(), right() и bottom().

QPoint QRect::center () const

Возвращает центральную точку прямоугольника.

См. также moveCenter(), topLeft(), bottomRight(), topRight() и bottomLeft().

bool QRect::contains ( const QPoint & p, bool proper = false ) const

Возвращает true, если точка p находится внутри или на краю данного прямоугольника; в противном случае возвращает false.

Если proper равно true, то функция возвращает true только в том случае, если p находится внутри прямоугольника (а не на краю).

bool QRect::contains ( int x, int y, bool proper ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает true, если точка x, y находится внутри или на краю данного прямоугольника; в противном случае возвращает false.

Если proper равно true, то функция возвращает true только в том случае, если p находится внутри прямоугольника (а не на краю).

bool QRect::contains ( int x, int y ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает true, если точка x, y находится внутри или на краю данного прямоугольника; в противном случае возвращает false.

bool QRect::contains ( const QRect & r, bool proper = false ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает true, если прямоугольник r находится внутри данного прямоугольника; в противном случае возвращает false.

Если proper равно true, то функция возвращает true только в том случае, если r находится внутри прямоугольника (а не на краю).

См. также unite(), intersect() и intersects().

void QRect::getCoords ( int * xp1, int * yp1, int * xp2, int * yp2 ) const

Извлекает параметры прямоугольника как координаты левого-верхнего угла *xp1, *yp1 и координаты правого-нижнего угла *xp2, *yp2.

См. также setCoords() и getRect().

void QRect::getRect ( int * x, int * y, int * w, int * h ) const

Извлекает параметры прямоугольника как координаты левого-верхнего угла *x, *y, ширину *w и высоту *h.

См. также setRect() и getCoords().

int QRect::height () const

Возвращает высоту прямоугольника. Высота включает верхнюю и нижнюю границы, т.е. height = bottom - top + 1.

См. также width(), size() и setHeight().

QRect QRect::intersect ( const QRect & r ) const

Возвращает область пересечения данного прямоугольника и прямоугольника r. r.intersect(s) эквивалентно r&s.

bool QRect::intersects ( const QRect & r ) const

Возвращает true, если данный прямоугольник пересекается с прямоугольником r (т.е., если есть, по крайней мере, одние пиксель, принадлежащий обоим прямоугольникам); в противном случае возваращает false.

См. также intersect() и contains().

bool QRect::isEmpty () const

Возвращает true, если данный прямоугольник пустой; в противном случае возвращает false.

Пустой прямоугольник - это прямоугольник, у которого left() > right() или top() > bottom().

Пустой прямоугольник недействителен. isEmpty() == !isValid()

См. также isNull(), isValid() и normalized().

bool QRect::isNull () const

Возвращает true, если данный прямоугольник нулевой; в противном случае возвращает false.

Нулевой прямоугольник - это прямоугольник, имеющий ширину и высоту, равные нулю, т.е. right() == left() - 1, а bottom() == top() - 1.

Обратите внимание, что при right() == left() и bottom() == top(), прямоугольник имеет ширину и высоту, равные 1.

Нулевой прямоугольник является пустым.

Нулевой прямоугольник недействителен.

См. также isEmpty() и isValid().

bool QRect::isValid () const

Возвращает true, если прямоугольник действителен; в противном случае возвращает false.

Действительный прямоугольник имеет left() < right() и top() < bottom().

Обратите внимание на то, что нетривиальные действия, подобные определению пересечения, не определены для недействительных прямоугольников.

isValid() == !isEmpty()

См. также isNull(), isEmpty() и normalized().

int QRect::left () const

Возвращает левую координату прямоугольника. Идентично x().

См. также setLeft(), right(), topLeft() и bottomLeft().

void QRect::moveBottom ( int pos )

Устанавливает нижнюю сторону прямоугольника в позицию pos оставляя неизменным размер.

См. также bottom(), setBottom(), moveLeft(), moveTop() и moveRight().

void QRect::moveBottomLeft ( const QPoint & p )

Устанавливает левый-нижний угол прямоугольника в позицию p, оставляя неизменным размер.

См. также bottomLeft(), setBottomLeft(), moveTopLeft(), moveBottomRight() и moveTopRight().

void QRect::moveBottomRight ( const QPoint & p )

Устанавливает правый-нижний угол прямоугольника в позицию p, оставляя неизменным размер.

См. также bottomRight(), setBottomRight(), moveTopLeft(), moveTopRight() и moveBottomLeft().

void QRect::moveCenter ( const QPoint & p )

Устанавливает центральную точку прямоугольника в позицию p, оставляя неизменным размер.

См. также center(), moveTopLeft(), moveBottomRight(), moveTopRight() и moveBottomLeft().

void QRect::moveLeft ( int pos )

Устанавливает левую сторону прямоугольника в позицию pos оставляя неизменным размер.

См. также left(), setLeft(), moveTop(), moveRight() и moveBottom().

void QRect::moveRight ( int pos )

Устанавливает правую сторону прямоугольника в позицию pos оставляя неизменным размер.

См. также right(), setRight(), moveLeft(), moveTop() и moveBottom().

void QRect::moveTo ( int x, int y )

Устанавливает правый-нижний угол прямоугольника в позицию x, y, оставляя неизменным размер.

См. также translate() и moveTopLeft().

void QRect::moveTo ( const QPoint & pt )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает правый-нижний угол прямоугольника в позицию pt, оставляя неизменным размер.

См. также translate() и moveTopLeft().

void QRect::moveTop ( int pos )

Устанавливает верхнюю сторону прямоугольника в позицию pos оставляя неизменным размер.

См. также top(), setTop(), moveLeft(), moveRight() и moveBottom().

void QRect::moveTopLeft ( const QPoint & p )

Устанавливает левый-верхний угол прямоугольника в позицию p, оставляя неизменным размер.

См. также topLeft(), setTopLeft(), moveBottomRight(), moveTopRight() и moveBottomLeft().

void QRect::moveTopRight ( const QPoint & p )

Устанавливает правый-нижний угол прямоугольника в позицию p, оставляя неизменным размер.

См. также topRight(), setTopRight(), moveTopLeft(), moveBottomRight() и moveBottomLeft().

QRect QRect::normalized () const

Возвращает нормальзованный прямоугольник, т.е. прямоугольник, ширина и высота которого неотрицательны.

Меняет левую и правую сторону, если left() > right(), и нижнюю и верхнюю стороны, если top() > bottom().

См. также isValid().

int QRect::right () const

Возвращает правую коодинату прямоугольника.

См. также setRight(), left(), topRight() и bottomRight().

void QRect::setBottom ( int pos )

Устанавливает нижнюю сторону прямоугольдника в позицию pos. Может измениться высота прямоугольника, но верхняя его сторона не перемещается.

См. также bottom(), setTop() и setHeight().

void QRect::setBottomLeft ( const QPoint & p )

Устанавливает левый-нижний угол прямоугольника в позицию p. Может измениться размер прямоугоьника, но правый-верхний его угол не перемещается.

См. также bottomLeft(), moveBottomLeft(), setTopLeft(), setBottomRight() и setTopRight().

void QRect::setBottomRight ( const QPoint & p )

Устанавливает правый-нижний угол прямоугольника в позицию p. Может измениться размер прямоугольника, но левый-нижний его угол не перемещается.

См. также bottomRight(), moveBottomRight(), setTopLeft(), setTopRight() и setBottomLeft().

void QRect::setCoords ( int xp1, int yp1, int xp2, int yp2 )

Устанавливает координаты левого-верхнего угла прямоугольника в (xp1, yp1), а координаты правого нижнего его угла в (xp2, yp2).

См. также coords(), getCoords() и setRect().

void QRect::setHeight ( int h )

Устанавливает высоту прямоугольника в h. Верхняя сторона не перемещается, но нижняя его сторона может быть перемещена.

См. также height(), setTop(), setBottom() и setSize().

void QRect::setLeft ( int pos )

Устанавливает левую сторону прямоугольника в позицию pos. Может измениться ширина прямоугольника, но правая его сторона не перемещается.

Идентично setX().

См. также left(), setTop() и setWidth().

void QRect::setRect ( int x, int y, int w, int h )

Устанавливает координаты левого-верхнего угла прямоугольника в позицию (x, y), а его размер в (w, h).

См. также rect(), getRect() и setCoords().

void QRect::setRight ( int pos )

Устанавливает правую сторону прямоугольника в позицию pos. Может измениться ширина прямоугольника, но левая его сторона не перемещается.

См. также right(), setLeft() и setWidth().

void QRect::setSize ( const QSize & s )

Устанавливает размер прямоугольника в s. Левый-верхний угол не перемещается.

См. также size(), setWidth() и setHeight().

void QRect::setTop ( int pos )

Устанавливает верхнюю сторону прямоугольника в позицию pos. Может измениться высота прямоугольника, то нижняя его сторона не перемещается.

Идентично setY().

См. также top(), setBottom() и setHeight().

void QRect::setTopLeft ( const QPoint & p )

Устанавливает позицию левого-верхнего угла прямоугольника в позицию p. Может измениться размер прямоугольника, но правый-нижний его угол не перемещается.

См. также topLeft(), moveTopLeft(), setBottomRight(), setTopRight() и setBottomLeft().

void QRect::setTopRight ( const QPoint & p )

Устанавливает правый-верхний угол прямоугольника в позицию p. Может измениться размер прямоугольника, но левый-нижний его угол не перемещается.

См. также topRight(), moveTopRight(), setTopLeft(), setBottomRight() и setBottomLeft().

void QRect::setWidth ( int w )

Устанавливает ширину прямоугольника в w. Правая сторона прямоугольника может быть перемещена, но левая его сторона не перемещается.

См. также width(), setLeft(), setRight() и setSize().

void QRect::setX ( int x )

Устанавливает позицию x прямоугольника (его левую сторону) в x. Может измениться ширина прямоугольника, но правая его сторона не перемещается.

Идентично setLeft().

См. также x() и setY().

void QRect::setY ( int y )

Устанавливает позицию y прямоугольника (его верхнюю сторону) в y. Может измениться высота прямоугольника, но нижняя его сторона не перемещается.

Идентично setTop().

См. также y() и setX().

QSize QRect::size () const

Возвращает размер прямоугольника.

См. также setSize(), width() и height().

int QRect::top () const

Возвращает позицию верхней стороны прямоугольника. Идентично y().

См. также setTop(), bottom(), topLeft() и topRight().

QPoint QRect::topLeft () const

Возвращает позицию левого верхнего угла прямоугольника.

См. также setTopLeft(), moveTopLeft(), bottomRight(), left() и top().

QPoint QRect::topRight () const

Возвращает позицию правого-верхнего угла прямоугольника.

См. также setTopRight(), moveTopRight(), bottomLeft(), top() и right().

void QRect::translate ( int dx, int dy )

Перемещает прямоугольник на dx вдоль оси x и на dy вдоль оси y относительно его текущего положения. При положительных значениях прямоугольник перемещается вправо и вниз.

См. также moveTopLeft(), moveTo() и translated().

void QRect::translate ( const QPoint & p )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Перемещает прямоугольник на p.x() вдоль оси x и на p.y() вдоль оси y относительно его текущего положения. При положительных значениях прямоугольник перемещается вправо и вниз.

См. также moveTopLeft().

QRect QRect::translated ( int dx, int dy ) const

Возвращает копию данного прямоугольника сдвинутую на dx вдоль оси x и на dy вдоль оси y относительно его текущего положения. При положительных значениях прямоугольник перемещается вправо и вниз.

См. также translate().

QRect QRect::translated ( const QPoint & p ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает копию данного прямоугольника сдвинутую на p.x() вдоль оси x и на p.y() вдоль оси y относительно его текущего положения. При положительных значениях прямоугольник перемещается вправо и вниз.

См. также translate().

QRect QRect::unite ( const QRect & r ) const

Возвращает прямоугольник, охватывающий данный прямоугольник и прямоугольник r. r.unite(s) эквивалентно r|s.

int QRect::width () const

Возвращает ширину прямоугольника.

См. также setWidth(), height(), size() и setHeight().

int QRect::x () const

Возвращает позицию левой стороны прямоугольника. Идентично left().

См. также left(), y() и setX().

int QRect::y () const

Возвращает позицию верхней стороны прямоугольника. Идентично top().

См. также top(), x() и setY().

QRect QRect::operator& ( const QRect & r ) const

Возвращает область пересечения данного прямоугольника и прямоугольника r.

Если прямоугольники не пересекаются, возвращает пустой прямоугольник.

Эквивалентно вызову

    intersect(r)

.

См. также operator&=(), operator|(), isEmpty(), intersect(), contains() и unite().

QRect & QRect::operator&= ( const QRect & r )

Пересекает данный прямоугольник прямоугольником r.

QRect QRect::operator| ( const QRect & r ) const

Возвращает прямоугольник, охватывающщий данный прямоугольник и прямоугольник r.

Эквивалентно вызову

    unite(r)

.

См. также operator|=(), operator&(), intersect(), contains() и unite().

QRect & QRect::operator|= ( const QRect & r )

Объединяет данный прямоугольник с прямоугольником r.


Связанные Не-Члены

bool operator!= ( const QRect & r1, const QRect & r2 )

Данная перегруженная функция предоставлена для удобства.

Возвращает true, если прямоугольники r1 и r2 различны; в противном случае возвращает false.

QDataStream & operator<< ( QDataStream & stream, const QRect & rectangle )

Данная перегруженная функция предоставлена для удобства.

Записывает прямоугольник rectangle в поток stream и возвращает ссылку на поток.

См. также Формат операторов QDataStream.

bool operator== ( const QRect & r1, const QRect & r2 )

Данная перегруженная функция предоставлена для удобства.

Возвращает true, если прямоугольники r1 и r2 эквивалентны; в противном случае возвращает false.

QDataStream & operator>> ( QDataStream & stream, QRect & rectangle )

Данная перегруженная функция предоставлена для удобства.

Считывает прямоугольник rectangle из потока stream и возвращает ссылку на поток.

См. также Формат операторов QDataStream.


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz