Шаг 206.
Библиотека PyQt5.
Графическая сцена. Класс QGraphicsScene: сцена. Прочие методы и сигналы
   
На этом шаге мы перечислим наиболее важные методы и сигналы.
   
Помимо рассмотренных ранее, класс QGraphicsScene поддерживает следующие методы (здесь приведены только основные - полный их список доступен на странице 
https://doc.qt.io/qt-5/qgraphicsscene.html):
 -  isActive () - возвращает значение True, если сцена отображается на экране с помощью какого-либо представления, и False - в противном случае;
 
 -  views () - возвращает список с представлениями (экземпляры класса QGraphicsView), в которых выводится сцена. Если сцена вообще не выводится на экран, возвращается пустой список;
 
 -  mouseGrabberItem () - возвращает ссылку на объект, который владеет мышью, или None, если такого объекта нет;
 
 -  render () - позволяет вывести содержимое сцены на устройство рисования или принтер. Формат метода:
  render(<QPainter>[, target=QRectF()][, source=QRectF()][, 
    mode=KeepAspectRatio])
 
   
Параметр target задает координаты и размеры устройства рисования, а параметр source - координаты и размеры прямоугольной области на сцене. Если параметры не указаны, 
то используются размеры устройства рисования и сцены. В параметре mode, задающем режим изменения размеров графики при выводе, могут быть указаны следующие атрибуты класса 
QtCore.Qt:
 -  IgnoreAspectRatio (или 0) - изменяет размеры без сохранения пропорций сторон;
 
 -  KeepAspectRatio (или 1) - изменяет размеры с сохранением пропорций сторон. При этом часть области на устройстве рисования может оказаться незаполненной;
 
 -  KeepAspectRatioByExpanding (или 2) - изменяет размеры с сохранением пропорций сторон. При этом часть выводимой графики может выйти за пределы области на устройстве рисования;
 
 
 -  invalidate () - вызывает перерисовку указанных слоев внутри прямоугольной области на сцене. Форматы метода:
  invalidate(<X>, <Y>, <Ширина>, <Высота>[, layers=AllLayers]) 
  invalidate([rect=QRectF()][, layers=AllLayers])
 
   
В параметре layers, задающем слои, которые требуется перерисовать, могут быть указаны следующие атрибуты класса QGraphicsScene:
 -  ItemLayer (или l) - слой объекта;
 
 -  BackgroundLayer (или 2) - слой заднего плана;
 
 -  ForegroundLayer (или 4) - слой переднего плана;
 
 -  AllLayers (или 65535) - все слои. Вначале отрисовывается слой заднего плана, затем - слой объекта и в конце - слой переднего плана.
 
   
Первый формат метода является слотом;
 
 -  update () - вызывает перерисовку указанной прямоугольной области сцены. Форматы метода:
  update(<X>, <Y>, <Ширина>, <Высота>) 
  update([rect=QRectF()])
 
   
Второй формат метода является слотом.
 
   
Класс QGraphicsScene поддерживает следующие сигналы:
 -  changed (<Список областей>) - генерируется при изменении сцены. Внутри обработчика через параметр доступен список с экземплярами класса QRectF, представляющими изменившиеся области сцены;
 
 -  sceneRectChanged (<QRectF>) - генерируется при изменении размеров сцены. Внутри обработчика через параметр доступен экземпляр класса QRectF с новыми координатами и размерами сцены;
 
 -  selectionChanged () - генерируется при изменении выделения объектов;
 
 -  focusItemChanged (<QGraphicItem>, <QGraphicItem>, <Причина изменения фокуса>) - генерируется при изменении фокуса клавиатурного ввода. Через параметры доступны объект, получивший фокус ввода, 
объект, потерявший фокус ввода, и причина изменения фокуса (см. 61 шаг).
 
   
Со следующего шага мы начнем рассматривать отображение сцены.
Предыдущий шаг 
 
Содержание 
 
Следующий шаг