Cцена и предствление в pyqt5
В чём разница между сценой и представлением в PyQt5?
Ответы (1 шт):
Graphics View Framework
Graphics View обеспечивает поверхность для управления и взаимодействия с большим количеством пользовательских 2D-графических элементов, а также виджет для визуализации элементов с поддержкой масштабирования и поворота.
Графическое представление использует дерево BSP (Binary Space Partitioning),
чтобы обеспечить очень быстрое обнаружение элементов, и в результате оно может визуализировать большие сцены в реальном времени, даже с миллионами элементов.
Графическое представление в основном содержит три класса:
- класс примитивов
QGraphicsItem, - класс сцены
QGraphicsScene, - класс представления
QGraphicsView.
Примитивыразмещаются насцене, а содержимое сцены отображается черезпредставления.
Примитивы могут быть текстом, рисунками, обычной геометрией или любой другой графикой.
QGraphicsItem поддерживает функции:
- события мыши, перемещения, отпускания и двойного щелчка, а также, события колесика и события меню, вызываемые щелчком правой кнопкой мыши;
- событие ввода с клавиатуры;
- события перетаскивания;
- обнаружение столкновения.
QGraphicsRectItem, QGraphicsScene и QGraphicsView на имеют свои собственные функции событий.
Порядок доставки событий - Вид -> Сцена -> Элемент.
QGraphicsScene (Сцена) - предоставляет методы, позволяющие быстро добавлять примитивы.
Сцена также предоставляет множество методов для управления примитивами.
QGraphicsViewна самом деле является областью прокрутки.
Если представления меньше размера сцены, в окне будет отображаться полоса прокрутки, чтобы пользователь мог наблюдать всю сцену.
Kогда примитивы добавлены и сцена настроена, мы обычно можем вызывать некоторые методы представления для выполнения некоторых преобразований примитивов, таких как увеличение, уменьшение и вращение.
Конечно, представление также предоставляет много методов. Например, вы также можете использовать items() и itemAt() для получения примитивов. Вы также можете установить фон представления, режим кэширования представления, режим перетаскивания мышью и т.д.
Графическое представление основано на декартовой системе координат, у представлений, сцен и примитивов есть свои собственные координаты.
Координаты вида(представления) основаны на верхнем левом углу как начале координат,
положительной оси x справа и положительной оси y вниз
(все события мыши изначально используют координаты представления).
Координаты сцены центрированы в начале координат,
положительная ось x расположена справа, а положительная ось y внизу
(координаты сцены описывают положение самого верхнего примитива).
Координаты примитива такие же, как координаты сцены.
QGraphicsView предоставляет функции отображения mapToScene() и mapFromScene(),
а также методы доступа к элементам items() и itemAt().
Эти функции позволяют отображать точки, прямоугольники, многоугольники и пути
между координатами вида и координатами сцены,
а также находить элементы на сцене, используя координаты вида.
Графическое представление предоставляет функции для преобразования между тремя системами координат и функции преобразования между примитивами.
Резюме
Порядок доставки события: View -> Scene -> Element. Если оно передается между родительским и дочерним классами элемента, порядок передачи от дочернего класса к родительскому классу.
Представления, сцены и примитивы имеют свою собственную систему координат.
Среда графического представления имеет слишком много точек знаний. Чтобы узнать больше https://doc.qt.io/qt-5/graphicsview.html .