На этом шаге мы приведем виды конструкторов этого класса и перечислим методы, используемые для изменения координат уже созданной области.
Класс QRect описывает координаты и размеры прямоугольной области. Для создания экземпляра класса предназначены следующие форматы конструктора:
<Объект> = QRect() <Объект> = QRect(<left>, <top>, <Ширина>, <Высота>) <Объект> = QRect(<Координаты левого верхнего угла>, <Размеры>) <Объект> = QRect(<Координаты левого верхнего угла>, <Координаты правого нижнего угла>) <Объект> = QRect(<QRect>)
Первый конструктор создает экземпляр класса со значениями по умолчанию. Второй и третий конструкторы позволяют указать координаты левого верхнего угла и размеры области. Во втором конструкторе значения указываются отдельно. В третьем конструкторе координаты задаются с помощью класса QPoint, а размеры - с помощью класса QSize. Четвертый конструктор позволяет указать координаты левого верхнего угла и правого нижнего угла. В качестве значений указываются экземпляры класса QPoint. Пятый конструктор создает новый экземпляр на основе другого экземпляра. Примеры:
>>> from PyQt5 import QtCore >>> r = QtCore.QRect() >>> r.left(), r.top(), r.right(), r.bottom(), r.width(), r.height() (0, 0, -1, -1, 0, 0) >>> r = QtCore.QRect (10, 15, 400, 300) >>> r.left(), r.top(), r.right(), r.bottom(), r.width(), r.height() (10, 15, 409, 314, 400, 300) >>> r = QtCore.QRect(QtCore.QPoint (10, 15), QtCore.QSize(400, 300)) >>> r.left(), r.top(), r.right(), r.bottom(), r.width(), r.height() (10, 15, 409, 314, 400, 300) >>> r = QtCore.QRect(QtCore.QPoint(10, 15), QtCore.QPoint(409, 314)) >>> r.left(), r.top(), r.right(), r.bottom(), r.width(), r.height() (10, 15, 409, 314, 400, 300) >>> QtCore.QRect (r) PyQt5.QtCore.QRect(10, 15, 400, 300)
Изменить значения уже после создания экземпляра позволяют следующие методы:
>>> r = QtCore.QRect () >>> r.setLeft(10); r.setTop (55); r PyQt5.QtCore.QRect(10, 55, -10, -55) >>> r.setX(12); r.setY(81); r PyQt5.QtCore.QRect(12, 81, -12, -81)
>>> r = QtCore.QRect ()
>>> r.setRight (12); r.setBottom(81); r
PyQt5.QtCore.QRect(0, 0, 13, 82)
>>> r = QtCore.QRect () >>> r.setTopLeft (QtCore.QPoint (10, 5)) >>> r.setBottomRight (QtCore.QPoint (39, 19)); r PyQt5.QtCore.QRect(10, 5, 30, 15) >>> r.setTopRight(QtCore.QPoint(39, 5)) >>> r.setBottomLeft (QtCore.QPoint (10, 19)); r PyQt5.QtCore.QRect(10, 5, 30, 15)
>>> r = QtCore.QRect () >>> r.setRect (10, 10, 100, 500); r PyQt5.QtCore.QRect(10, 10, 100, 500) >>> r.setCoords(10, 10, 109, 509); r PyQt5.QtCore.QRect(10, 10, 100, 500)
QMargins (<Граница слева>, <Граница сверху>, <Граница справа>, <Граница снизу>)
Текущая область при этом не изменяется. Пример:
>>> r1 = QtCore.QRect (10, 15, 400, 300) >>> m = QtCore.QMargins (5, 2, 5, 2) >>> r2 = r1.marginsAdded (m) >>> r2 PyQt5.QtCore.QRect(5, 13, 410, 304) >>> r1 PyQt5.QtCore.QRect(10, 15, 400, 300)
>>> r1 = QtCore.QRect (10, 15, 400, 300) >>> m = QtCore.QMargins (2, 10, 2, 10) >>> r2 = r1.marginsRemoved (m) >>> r2 PyQt5.QtCore.QRect(12, 25, 396, 280) >>> r1 PyQt5.QtCore.QRect(10, 15, 400, 300)
На следующем шаге мы продолжим изучение этого вопроса.