Название: Возможности QGraphicsScene Отправлено: mus_zzz от Январь 25, 2016, 12:39 Интересует такой вопрос. Если я могу на виджете использовать графические примитивы,анимацию,переходы на прямую без сцены,то какие преимущества дает возможность использования QGraphicsScene?
Название: Re: Возможности QGraphicsScene Отправлено: Zerkin от Январь 25, 2016, 12:50 Из документации
Цитировать Класс QGraphicsScene предоставляет поверхность для управления большим числом графических 2D элементов. Этот класс служит как контейнер для QGraphicsItems. Он используется вместе с QGraphicsView для отображения графических объектов, таких как линии, прямоугольники, текст или даже собственные элементы на двухмерной поверхности. QGraphicsScene входит в каркас графического представления. QGraphicsScene также предоставляет функциональность, которая позволит вам эффективно определять положение элементов и какие элементы видимы внутри произвольной области сцены. С виджетом QGraphicsView вы можете или отобразить всю сцену, или увеличить и отобразить только часть сцены. ........ QGraphicsScene использует алгоритм индексации для эффективного управления положением элементов. По умолчанию используется дерево BSP (Binary Space Partitioning); этот алгоритм удобен для больших сцен где большинство элементов остаются статичными (т.е., не перемещаются). Вы можете отключить этот индекс вызвав setItemIndexMethod(). Для получения дополнительной информации о доступных алгоритмах индексации смотрите свойство itemIndexMethod. ....... Одной из сильнейших сторон QGraphicsScene является её возможность эффективно определять положение элементов. Даже с миллионами элементов на сцене функции items() могут определять положение элемента в течении нескольких миллисекунд. Есть несколько перегруженных функций для items(): одна находит элементы в определённой позиции, другая находит элементы внутри или в пересечении с полигоном или прямоугольником, и так далее. Список возвращаемых элементов отсортирован в порядке расположения, первым элементом списка будет верхний элемент. Для удобства также есть функция itemAt(), которая возвращает верхний элемент в заданной точке. QGraphicsScene управляет информацией о выделении для сцены. Чтобы выбрать элементы, вызовите setSelectionArea(), а чтобы очистить текущее выделение вызовите clearSelection(). Вызовите selectedItems() чтобы получить список всех выделенных элементов. Оптимизация. Удобство. Ну, собственно, возможность не придумывать велосипеды. Выделил вам в тексте основное, на что обратить внимание. Название: Re: Возможности QGraphicsScene Отправлено: mus_zzz от Январь 25, 2016, 13:40 спс
|