Шаг 205.
Библиотека PyQt5.
Графическая сцена. Класс QGraphicsScene: сцена. Управление выделением объектов
На этом шаге мы рассмотрим методы, которые используются для выполнения этой операции.
Чтобы объект можно было выделить (с помощью мыши или программно), необходимо установить флаг ItemIsSelectable, - например, с помощью метода setFlag() класса QGraphicsItem.
Для управления выделением объектов предназначены следующие методы этого класса:
- setSelectionArea () - выделяет объекты внутри указанной области. Чтобы выделить только один объект, следует воспользоваться методом setSelected() класса
QGraphicsItem. Форматы метода setSelectionArea():
setSelectionArea(<QPainterPath>, <QTransform>)
setSelectionArea(<QPainterPath>[, mode=IntersectsItemShape] [,
deviceTransform=QTransform()])
В необязательном параметре mode могут быть указаны следующие атрибуты класса QtCore.Qt:
- ContainsItemShape (или 0) - объект будет выделен, если все точки объекта находятся внутри области выделения;
- IntersectsItemShape (или 1) - объект будет выделен, если любая точка объекта попадет в область выделения;
- ContainsItemBoundingRect (или 2) - объект будет выделен, если охватывающий прямоугольник полностью находится внутри области выделения;
- IntersectsItemBoundingRect(или 3) - объект будет выделен, если любая точка охватывающего прямоугольника попадет в область выделения.
Второй параметр первого формата и параметр deviceTransform второго формата задают примененные к сцене преобразования системы координат (см. 191 шаг);
- selectionArea () - возвращает область выделения в виде экземпляра класса QPainterPath;
- selectedItems () - возвращает список со ссылками на выделенные объекты или пустой список, если выделенных объектов нет;
- clearSelection () - снимает выделение. Метод является слотом.
На следующем шаге мы рассмотрим прочие методы и сигналы.
Предыдущий шаг
Содержание
Следующий шаг