На этом шаге мы рассмотрим методы, не вошкдшие в ранее рассмотренные группы, а также основные операции, выполняемые над объектами этого класса.
Прочие методы:
>>> from PyQt5 import QtCore >>> r = QtCore.QRect(QtCore.QPoint(409, 314), QtCore.QPoint(10, 15)) >>> r PyQt5.QtCore.QRect(409, 314, -398, -298) >>> r.normalized() PyQt5.QtCore.QRect(10, 15, 400, 300)
>>> r = QtCore.QRect (0, 0, 400, 300) >>> r.contains (0, 10), r.contains (0, 10, True) (True, False)
>>> r = QtCore.QRect(0, 0, 400, 300) >>> r.contains (QtCore.QRect (0, 0, 20, 5)) True >>> r.contains (QtCore.QRect (0, 0, 20, 5), True) False
>>> r = QtCore.QRect(0, 0, 20, 20) >>> r.intersects(QtCore.QRect(10, 10, 20, 20)) True >>> r.intersected(QtCore.QRect (10, 10, 20, 20)) PyQt5.QtCore.QRect(10, 10, 10, 10)
>>> r = QtCore.QRect (0, 0, 20, 20)
>>> r.united(QtCore.QRect (30, 30, 20, 20))
PyQt5.QtCore.QRect(0, 0, 50, 50)
Над двумя экземплярами класса QRect определены операции & и &= (пересечение), | и |= (объединение), in (проверка на вхождение), == и !=. Пример:
>>> r1, r2 = QtCore.QRect (0, 0, 20, 20), QtCore.QRect (10, 10, 20, 20) >>> r1 & r2, r1 | r2 (PyQt5.QtCore.QRect(10, 10, 10, 10), PyQt5.QtCore.QRect(0, 0, 30, 30)) >>> r1 in r2, r1 in QtCore.QRect (0, 0, 30, 30) (False, True) >>> r1 == r2, r1 != r2 (False, True)
Помимо этого, поддерживаются операторы + и -, выполняющие увеличение и уменьшение области на заданные величины границ, которые должны быть заданы в виде объекта класса QMargins:
>>> r = QtCore.QRect (10, 15, 400, 300) >>> m = QtCore.QMargins (5, 15, 5, 15) >>> r + m PyQt5.QtCore.QRect(5, 0, 410, 330) >>> r - m PyQt5.QtCore.QRect(15, 30, 390, 270)
На следующем шаге мы рассмотрим разворачивание и сворачивание окна.