Описание класса QRect
|
QRect () | |
QRect ( const QPoint & topLeft, const QPoint & bottomRight ) | |
QRect ( const QPoint & topLeft, const QSize & size ) | |
QRect ( int x, int y, int width, int height ) | |
void | adjust ( int dx1, int dy1, int dx2, int dy2 ) |
QRect | adjusted ( int dx1, int dy1, int dx2, int dy2 ) const |
int | bottom () const |
QPoint | bottomLeft () const |
QPoint | bottomRight () const |
QPoint | center () const |
bool | contains ( const QPoint & point, bool proper = false ) const |
bool | contains ( int x, int y, bool proper ) const |
bool | contains ( int x, int y ) const |
bool | contains ( const QRect & rectangle, bool proper = false ) const |
void | getCoords ( int * x1, int * y1, int * x2, int * y2 ) const |
void | getRect ( int * x, int * y, int * width, int * height ) const |
int | height () const |
QRect | intersected ( const QRect & rectangle ) const |
bool | intersects ( const QRect & rectangle ) const |
bool | isEmpty () const |
bool | isNull () const |
bool | isValid () const |
int | left () const |
void | moveBottom ( int y ) |
void | moveBottomLeft ( const QPoint & position ) |
void | moveBottomRight ( const QPoint & position ) |
void | moveCenter ( const QPoint & position ) |
void | moveLeft ( int x ) |
void | moveRight ( int x ) |
void | moveTo ( int x, int y ) |
void | moveTo ( const QPoint & position ) |
void | moveTop ( int y ) |
void | moveTopLeft ( const QPoint & position ) |
void | moveTopRight ( const QPoint & position ) |
QRect | normalized () const |
int | right () const |
void | setBottom ( int y ) |
void | setBottomLeft ( const QPoint & position ) |
void | setBottomRight ( const QPoint & position ) |
void | setCoords ( int x1, int y1, int x2, int y2 ) |
void | setHeight ( int height ) |
void | setLeft ( int x ) |
void | setRect ( int x, int y, int width, int height ) |
void | setRight ( int x ) |
void | setSize ( const QSize & size ) |
void | setTop ( int y ) |
void | setTopLeft ( const QPoint & position ) |
void | setTopRight ( const QPoint & position ) |
void | setWidth ( int width ) |
void | setX ( int x ) |
void | setY ( int y ) |
QSize | size () const |
int | top () const |
QPoint | topLeft () const |
QPoint | topRight () const |
void | translate ( int dx, int dy ) |
void | translate ( const QPoint & offset ) |
QRect | translated ( int dx, int dy ) const |
QRect | translated ( const QPoint & offset ) const |
QRect | united ( const QRect & rectangle ) const |
int | width () const |
int | x () const |
int | y () const |
QRect | operator& ( const QRect & rectangle ) const |
QRect & | operator&= ( const QRect & rectangle ) |
QRect | operator| ( const QRect & rectangle ) const |
QRect & | operator|= ( const QRect & rectangle ) |
bool | operator!= ( const QRect & r1, const QRect & r2 ) |
QDataStream & | operator<< ( QDataStream & stream, const QRect & rectangle ) |
bool | operator== ( const QRect & r1, const QRect & r2 ) |
QDataStream & | operator>> ( QDataStream & stream, QRect & rectangle ) |
Класс QRect описывает прямоугольник на плоскости, используя целочисленную точность.
Обычно прямоугольник выражается через верхний левый угол и размер. Размер (ширина и высота) QRect'а всегда эквивалентен математическому прямоугольнику, который формирует основу для его рисования.
QRect может быть сконструирован с помощью задания целых координат left, top, width и height, или из QPoint и QSize. Следующий код создаёт два идентичных прямоугольника.
QRect r1(100, 200, 11, 16); QRect r2(QPoint(100, 200), QSize(11, 16));
Существует и третий конструктор, который создаёт QRect используя координаты верхнего левого и нижнего правого углов, но мы не рекомендуем вам использовать его. Обоснование: по историческим причинам, значения, возвращаемое функциями bottom() и right(), отклоняются от истинного значения нижнего правого угла прямоугольника.
Класс QRect предоставляет коллекцию функций, которые возвращают различные координаты прямоугольника, и позволяют манипулировать им. QRect также предоставляет функции, чтобы перемещать прямоугольник относительно различных координат. В дополнение, есть функция moveTo(), которая перемещает прямоугольник, перенося его верхний левый угол в заданные координаты. В качестве альтернативы, функция translate() перемещает прямоугольник на заданное смещение относительно текущей позиции, а функция translated() возвращает сдвинутую копию этого прямоугольника.
Функция size() возвращает размеры прямоугольника в виде QSize. Размеры могут быть так же получены раздельно, используя функции width() и height(). Для работы с размерами используются функции setSize(), setWidth() или setHeight(). Альтернативно, размер может быть изменён применением функций установки координат прямоугольника, например, setBottom() или setRight().
Функция contains() говорит, находится ли заданная точка внутри прямоугольника или нет, а функция intersects() возвращает true если этот прямоугольник пересекается с заданным прямоугольником. Класс QRect также предоставляет функцию intersected(), которая возвращает прямоугольник пересечения, и функцию united(), которая возвращает прямоугольник, который охватывает заданный прямоугольник и этот:
intersected() | united() |
Функция isEmpty() возвращает true если left() > right() или top() > bottom(). Заметьте, что пустой прямоугольник недействительный: Функция isValid() возвращает true если left() <= right() и top() <= bottom(). Нулевой прямоугольник (isNull() == true), с другой стороны, имеет и ширину и высоту установленные в 0.
Заметьте, что в силу связи с QRect и QRectF тоже определён, пустой QRect определен по существу тем же самым способом как QRectF.
В заключение, объект QRect может быть выведен в поток так же просто как и сравниваться.
Когда используется рисовальщик (painter) со сглаживанием, граничная линия QRect будет отрисована симметрично по обоим сторонам граничной линии математического прямоугольника. Но, когда используется не сглаженный рисовальщик(по умолчанию) применяются другие правила.
Затем, когда отрисовка осуществляется с помощью карандаша шириной в один пиксель, граница QRect'а будет отрисовываться правее и ниже границы математического прямоугольника.
Когда отрисовка осуществляется с помощью карандаша шириной в два пикселя, грница будет разделена по середине математическим прямоугольником. Это будет иметь место всякий раз, когда карандаш установлен в четное число пикселей, в то время как рисование с помощью карандаша с нечёетным количеством пикселей, дополнительный пиксель будет рисоваться правее и ниже границы математического прямоугольника, как в случае с одним пикселем.
Логическое представление | Перо шириной в один пиксель |
Перо шириной в два пикселя | Перо шириной в три пикселя |
Класс QRect предоставляет коллекцию функций, которые возвращают различные координаты прямоугольника, и позволяют манипулировать им. QRect также предоставляет функции, чтобы перемещать прямоугольник относительно различных координат.
Например, функции left(), setLeft() и moveLeft(), как пример: left() возвращает координату x левого края прямоугольника, setLeft() устанавливает левый край прямоугольника в заданную кординату x (она может изменить ширину, но никогда не изменяет правый край прямоугольника), а moveLeft() перемещает весь прямоугольник горизонтально, оставляя левый край прямоугольника в заданной координате x и его размер не изменяется.
Заметьте, что по историческим причинам значения, возвращаемые функциями bottom() и right(), отклоняются от истинного нижнего правого угла прямоугольника: Функция right() возвращает left() + width() - 1, а функция bottom() возвращает top() + height() - 1. Та же ситуация для точки, возвращаемой вспомогательной функцией bottomRight(). В дополнении, координаты x и y функций topRight() и bottomLeft(), соответственно, содержат некоторое отклонение от истинных правого и нижнего краёв.
Мы рекомендуем вам использовать x() + width() и y() + height(), чтобы найти истинный нижний правый угол, и избегать использования функций right() и bottom(). Другое решение - использовать QRectF: Класс QRectF определяет прямоугольник на плоскости используя точность плавающей запятой для координат, и функции QRectF::right() и QRectF::bottom() возвращают правую и нижнюю координаты.
Также возможно добавить смещение к координатам этого прямоугольника, используя функцию adjust(), также как и получить новый прямоугольник основанный на корректировке оригинального, используя функцию adjusted(). Если ширина и/или высота отрицательны, то используйте функцию normalized(), чтобы получить прямоугольник, у которого углы поменяны местами.
В дополнение, QRect предоставляет функцию getCoords(), которая извлекает позицию верхнего левого и нижнего правого углов прямоугольника, и функцию getRect(), которая извлекает верхний левый угол, ширину и высоту. Используйте функции setCoords() и setRect(), чтобы работать с координатами и размерами прямоугольника в одном ключе.
Смотрите также QRectF и QRegion.
Конструирует пустой прямоугольник.
Смотрите также isNull().
Конструирует прямоугольник с заданными углами topLeft и bottomRight.
Смотрите также setTopLeft() и setBottomRight().
Конструирует прямоугольник с заданным углом topLeft и заданным размеромsize.
Смотрите также setTopLeft() и setSize().
Конструирует прямоугольник с координатами (x, y), в качестве его верхнего левого угла и заданными шириной (width) и высотой (height).
Смотрите также setRect().
Добавляет dx1, dy1, dx2 и dy2 к имеющимся координатам прямоугольника, соответственно.
Смотрите также adjusted() и setRect().
Возвращает новый прямоугольник с dx1, dy1, dx2 и dy2 добавленными к имеющимся координатам прямоугольника, соответственно.
Смотрите также adjust().
Возвращает Y-координату нижнего края прямоугольника.
Заметьте, что по историческим причинам эта функция возвращает top() + height() - 1; используйте y() + height(), чтобы получить истинную Y-координату.
Смотрите также setBottom(), bottomLeft() и bottomRight().
Возвращает позицию нижнего левого угла прямоугольника. Заметьте, что по историческим причинам эта функция возвращает QPoint(left(), top() + height() - 1).
Смотрите также setBottomLeft(), bottom() и left().
Возвращает позицию нижнего правого угла прямоугольника.
Заметьте, что по историческим причинам эта функция возвращает QPoint(left() + width() -1, top() + height() - 1).
Смотрите также setBottomRight(), bottom() и right().
Возвращает центральную точку прямоугольника.
Смотрите также moveCenter().
Возвращает true, если заданная точка point находится внутри или на краю прямоугольника, в противном случае возвращает false. Если proper равен true, эта функция вернёт true, только если заданная точка point находится внутри прямоугольника (т.е. не на краю).
Смотрите также intersects().
Это перегруженная функция.
Возвращает true, если точка (x, y) находится внутри или на краю прямоугольника, в противном случае возвращает false. Если proper равен true, эта функция вернёт true только если точка полностью находится внутри прямоугольника (не на краю).
Это перегруженная функция.
Возвращает true, если точка (x, y) находится внутри этого прямоугольника, в противном случает возвращает false.
Это перегруженная функция.
Возвращает true, если заданный прямоугольник rectangle находится внутри этого прямоугольника. в противном случает возвращает. Если proper равен true, эта функция вернёт true только если прямоугольник rectangle полностью находится внутри этого прямоугольника (не на краю).
Извлекает позицию верхнего левого угла прямоугольника в *x1 и *y1, и позицию нижнего правого угла в *x2 и *y2.
Смотрите также setCoords() и getRect().
Извлекает позицию верхнего левого угла прямоугольника в *x и *y, и его размеры в *width и *height.
Смотрите также setRect() и getCoords().
Возвращает высоту прямоугольника.
Смотрите также setHeight(), width() и size().
Возвращает пересечение этого прямоугольника и заданного прямоугольника rectangle. Заметьте, что r.intersected(s) эквивалентно r & s.
Эта функция была введена в Qt 4.2.
Смотрите также intersects(), united() и operator&=().
Возвращает true, если этот прямоугольник пересекается с заданным прямоугольником rectangle (т.е. существует как минимум один пиксель, который находится внутри обоих прямоугольников), в противном случае возвращает false.
Прямоугольник пересечения может быть получен, используя функцию intersected().
Смотрите также contains().
Возвращает true, если прямоугольник пустой; в противном случае возвращает false.
Пустой прямоугольник имеет left() > right() или top() > bottom(). Пустой прямоугольник не является действительным (i.e., isEmpty() == !isValid()).
Используйте функцию normalized(), чтобы получить прямоугольник, у которого углы поменяны местами.
Смотрите также isNull(), isValid() и normalized().
Возвращает true, если прямоугольник нулевой, в противном случае возвращает false.
Нулевой прямоугольник имеет и ширину и высоту, установленные в 0 (т.е. right() == left() - 1 и bottom() == top() - 1). Нулевой прямоугольник также является пустым, и, следовательно, недействительным.
Смотрите также isEmpty() и isValid().
Возвращает true, если прямоугольник действительный; в противном случае возвращает false.
Действительный прямоугольник имеет left() < right() и top() < bottom(). Заметьте, что нетривиальные операции подобные пересечению не определены для недействительных прямоугольников. Действительный прямоугольник - не пустой (т.е. isValid() == !isEmpty()).
Смотрите также isNull(), isEmpty() и normalized().
Возвращает X-координату левого края прямоугольника. Эквивалентно x().
Смотрите также setLeft(), topLeft() и bottomLeft().
Перемещает прямоугольник вертикально, перенося нижний край прямоугольника в заданную координату y. Размер прямоугольника не изменяется.
Смотрите также bottom(), setBottom() и moveTop().
Перемещает прямоугольник, перенося нижний левый угол в заданную позицию position. Размер прямоугольника не изменяется.
Смотрите также setBottomLeft(), moveBottom() и moveLeft().
Перемещает прямоугольник, перенося нижний правый угол в заданную позицию position. Размер прямоугольника не изменяется.
Смотрите также setBottomRight(), moveRight() и moveBottom().
Перемещает прямоугольник, перенося нижний левый угол в заданную позицию position. Размер прямоугольника не изменяется.
Смотрите также center().
Перемещает прямоугольник горизонтально, перенося левый край прямоугольника в заданную координату x. Размер прямоугольника не изменяется.
Смотрите также left(), setLeft() и moveRight().
Перемещает прямоугольник горизонтально, перенося правый край прямоугольника в заданную координату x. Размер прямоугольника не изменяется.
Смотрите также right(), setRight() и moveLeft().
Перемещает прямоугольник, перенося верхний левый угол в заданную позицию (x, y). Размер прямоугольника не изменяется.
Смотрите также translate() и moveTopLeft().
Перемещает прямоугольник, перенося верхний левый угол в заданную позицию position.
Перемещает прямоугольник вертикально, перенося верхний край прямоугольника в заданную координату y. Размер прямоугольника не изменяется.
Смотрите также top(), setTop() и moveBottom().
Перемещает прямоугольник, перенося верхний левый угол в заданную позицию position. Размер прямоугольника не изменяется.
Смотрите также setTopLeft(), moveTop() и moveLeft().
Перемещает прямоугольник, перенося верхний правый угол в заданную позицию position. Размер прямоугольника не изменяется.
Смотрите также setTopRight(), moveTop() и moveRight().
Возвращает нормализованный прямоугольник; т.е. прямоугольник, который имеет неотрицательную ширину и высоту.
Если width() < 0 функция меняет местами левый и правый углы, и она меняет местами верхний и нижний углы, если height() < 0.
Смотрите также isValid() и isEmpty().
Возвращает X-координату правого края прямоугольника.
Заметьте, что по историческим причинам эта функция возвращает left() + width() - 1; используйте x() + width(), чтобы получить истинную X-координату.
Смотрите также setRight(), topRight() и bottomRight().
Устанавливает нижний край прямоугольника в заданную координату y. Может изменить высоту, но никогда не изменит верхний край прямоугольника.
Смотрите также bottom() и moveBottom().
Устанавливает нижний левый угол прямоугольника в заданную позицию position. Может изменить размер, но никогда не изменит верхний правый угол прямоугольника.
Смотрите также bottomLeft() и moveBottomLeft().
Устанавливает нижний правый угол прямоугольника в заданную позицию position. Может изменить размер, но никогда не изменит верхний левый угол прямоугольника.
Смотрите также bottomRight() и moveBottomRight().
Устанавливает координаты верхнего левого угла прямоугольника в (x1, y1), и координаты нижнего правого угла в (x2, y2).
Смотрите также coords(), getCoords() и setRect().
Устанавливает высоту прямоугольника в заданную высоту height. Нижний край изменяется, а верхний нет.
Смотрите также height() и setSize().
Устанавливает левый край прямоугольника в заданную координату x. Может изменить ширину, но никогда не изменит правый край прямоугольника.
Эквивалентно setX().
Смотрите также left() и moveLeft().
Устанавливает координаты верхнего левого угла прямоугольника в (x, y), и его размер в заданные width и height.
Смотрите также rect(), getRect() и setCoords().
Устанавливает правый край прямоугольника в заданную координату x. Может изменить ширину, но никогда не изменит левый край прямоугольника.
Смотрите также right() и moveRight().
Устанавливает размер прямоугольника в заданный размер size. Верхний левый угол не перемещается.
Смотрите также size(), setWidth() и setHeight().
Устанавливает верхний край прямоугольника в заданную координату y. Может изменить высоту, но никогда не изменит нижний край прямоугольника.
Эквивалентно setY().
Смотрите также top() и moveTop().
Устанавливает верхний левый угол прямоугольника в заданную позицию position. Может изменить размер, но никогда не изменит нижний правый угол прямоугольника.
Смотрите также topLeft() и moveTopLeft().
Устанавливает верхний правый угол прямоугольника в заданную позицию position. Может изменить размер, но никогда не изменит нижний левый угол прямоугольника.
Смотрите также topRight() и moveTopRight().
Устанавливает ширину прямоугольника в заданную ширину width. Правый край изменяется, а левый нет.
Смотрите также width() и setSize().
Устанавливает левый край прямоугольника в заданную координату x. Может изменить ширину, но никогда не изменит правый край прямоугольника.
Эквивалентно setLeft().
Смотрите также x(), setY() и setTopLeft().
Устанавливает верхний край прямоугольника в заданную координату y. Может изменить высоту, но никогда не изменит нижний край прямоугольника.
Эквивалентно setTop().
Смотрите также y(), setX() и setTopLeft().
Возвращает размер прямоугольника.
Смотрите также setSize(), width() и height().
Возвращает Y-координату верхнего края прямоугольника. Эквивалентно y().
Смотрите также setTop(), topLeft() и topRight().
Возвращает позицию верхнего левого угла прямоугольника.
Смотрите также setTopLeft(), top() и left().
Возвращает позицию верхнего правого угла прямоугольника.
Заметьте, что по историческим причинам эта функция возвращает QPoint(left() + width() -1, top()).
Смотрите также setTopRight(), top() и right().
Перемещает прямоугольник на dx вдоль оси X и на dy вдоль оси Y, относительно текущей позиции. Положительные значения перемещают прямоугольник вправо и вниз.
Смотрите также moveTopLeft(), moveTo() и translated().
Это перегруженная функция.
Перемещает прямоугольник на offset.x() вдоль оси X и на offset.y() вдоль оси Y, относительно текущей позиции.
Возвращает копию прямоугольника, которая сдвинута (translated) на dx вдоль оси X и на dy вдоль оси Y, относительно текущей позиции. Положительные значения перемещают прямоугольник вправо и вниз.
Смотрите также translate().
Это перегруженная функция.
Возвращает копию прямоугольника, которая сдвинута (translated) на offset.x() вдоль оси X и на offset.y() вдоль оси Y, относительно текущей позиции.
Возвращает охватывающий прямоугольник этого прямоугольника и заданного прямоугольника rectangle.
Эта функция была введена в Qt 4.2.
Смотрите также intersected().
Возвращает ширину прямоугольника.
Смотрите также setWidth(), height() и size().
Возвращает X-координату левого края прямоугольника. Эквивалентно left().
Смотрите также setX(), y() и topLeft().
Возвращает Y-координату верхнего края прямоугольника. Эквивалентно top().
Смотрите также setY(), x() и topLeft().
Возвращает пересечение этого прямоугольника и заданного прямоугольника rectangle. Возвращает пустой прямоугольник, если пересечения не существует.
Смотрите также operator&=() и intersected().
Пересечение этого прямоугольника с заданным прямоугольником rectangle.
Смотрите также intersected() и operator&().
Возвращает охватывающий прямоугольник этого прямоугольника и заданного прямоугольника rectangle.
Смотрите также operator|=() и united().
Объединение этого прямоугольника с заданным прямоугольником rectangle.
Смотрите также united() и operator|().
Возвращает true, если прямоугольники r1 и r2 отличаются, в противном случае возвращает false.
Записывает заданный прямоугольник rectangle в заданный поток stream и возвращает ссылку на поток.
Смотрите также Формат операторов QDataStream.
Возвращает true, если прямоугольники r1 и r2 равны, в противном случае возвращает false.
Читает прямоугольник из потока stream в заданный прямоугольник rectangle и возвращает ссылку на поток.
Смотрите также Формат операторов QDataStream.
Авторские права © 2010 Nokia Corporation и/или её дочерние компании | Торговые марки | Qt 4.6.4 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |