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