Russian Qt Forum
Ноябрь 23, 2024, 06:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Возможности QGraphicsScene  (Прочитано 2150 раз)
mus_zzz
Гость
« : Январь 25, 2016, 12:39 »

Интересует такой вопрос. Если я могу на виджете использовать графические примитивы,анимацию,переходы на прямую без сцены,то какие преимущества дает возможность использования QGraphicsScene?
Записан
Zerkin
Чайник
*
Offline Offline

Сообщений: 98


Просмотр профиля
« Ответ #1 : Январь 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() чтобы получить список всех выделенных элементов.

Оптимизация. Удобство. Ну, собственно, возможность не придумывать велосипеды.

Выделил вам в тексте основное, на что обратить внимание.
« Последнее редактирование: Январь 25, 2016, 12:52 от Zerkin » Записан
mus_zzz
Гость
« Ответ #2 : Январь 25, 2016, 13:40 »

спс
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.