Шаг 208.
Библиотека PyQt5.
Графическая сцена. Класс QGraphicsView: представление. Настройка представления
На этом шаге мы перечислим основные методы, которые применяются для выполнения этой операции.
Для настройки различных параметров представления применяются следующие методы класса QGraphicsView (здесь приведены только основные - полный их список доступен на странице
https://doc.qt.io/qt-5/qgraphicsview.html):
- setScene (<QGraphicsScene>) - устанавливает выводимую на экран сцену;
- scene () - возвращает ссылку на установленную сцену в виде экземпляра класса QGraphicsScene;
- setSceneRect () - задает координаты и размеры сцены. Форматы метода:
setSceneRect(<X>, <Y>, <Ширина>, <Высота>)
setSceneRect(<QRectF>)
- sceneRect () - возвращает экземпляр класса QRectF с координатами и размерами сцены;
- setBackgroundBrush (<QBrush>) - задает кисть для заднего плана сцены (расположен под графическими объектами);
- setForegroundBrush (<QBrush>) - задает кисть для переднего плана сцены (расположен над графическими объектами);
- setCacheMode (<Режим>) - задает режим кэширования выводимых объектов. В качестве параметра могут быть указаны следующие атрибуты класса QGraphicsView:
- CacheNone (или 0) - без кэширования;
- CacheBackground (или 1) - кэшируется только задний фон;
- resetCachedContent () - сбрасывает кэш;
- setAlignment (<Выравнивание>) - задает выравнивание сцены в случае, если содержимое сцены полностью помещается в представлении. По умолчанию сцена центрируется
по горизонтали и вертикали. Пример установки сцены в левом верхнем углу представления:
view.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
- setInteractive (<Флаг>) - если в качестве параметра указано значение True, пользователь может взаимодействовать с объектами на сцене (интерактивный режим,
используется по умолчанию). Значение False разрешает только просмотр сцены;
- isInteractive () - возвращает значение True, если задан интерактивный режим, и False - в противном случае;
- setDragMode (<Режим>) - задает действие, которое производится при щелчке левой кнопкой мыши на фоне и перемещении мыши. Получить текущее действие позволяет
метод dragMode(). В качестве параметра могут быть указаны следующие атрибуты класса QGraphicsView:
- NoDrag (или 0) - ничего не происходит;
- ScrollHandDrag (или 1) - перемещение мыши при нажатой левой кнопке будет приводить к прокрутке сцены. При этом указатель мыши примет вид сжатой или разжатой руки;
- RubberBandDrag (или 2) - создается область выделения. Объекты, частично или полностью (задается с помощью метода setRubberBandSelectionMode()) попавшие в эту
область, будут выделены (при условии, что установлен флаг ItemIsSelectable). Действие выполняется только в интерактивном режиме;
- setRubberBandSelectionMode (<Режим>) - задает режим выделения объектов при установленном флаге RubberBandDrag. В параметре <Режим> могут быть указаны
следующие атрибуты класса QtCore.Qt:
- ContainsItemShape (или 0) - объект будет выделен, если все точки объекта находятся внутри области выделения;
- IntersectsItemShape (или 1) - объект будет выделен, если любая точка объекта попадет в область выделения;
- ContainsItemBoundingRect (или 2) - объект будет выделен, если охватывающий прямоугольник полностью находится внутри области выделения;
- IntersectsItemBoundingRect (или 3) - объект будет выделен, если любая точка охватывающего прямоугольника попадет в область выделения.
На следующем шаге мы рассмотрим преобразования между координатами представления и сцены.
Предыдущий шаг
Содержание
Следующий шаг