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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsScene, выделение области стоит ли связываться с QPainterPath?  (Прочитано 2961 раз)
andrek
Гость
« : Март 28, 2013, 14:59 »

Реализовал тайловую сцену, возникла необходимость выделять область.
Сейчас использую QGraphicsScene::setSelectionArea(QPainterPath), но видно что подтормаживает, и например при выделении всей сцены (108х108 это всего 11664 элементов 32х32) пауза на ноутбуке очень ощутима секунд ~30.
QPainterPath::length() выдал при этом астрономическую цифру 1.49299e+06, и собственно понятно откуда тормоза.
Где я ошибся, может мне просто заменить на QVector<QRect>?
QPainterPath также используется еще для selectionArea().contains(QPoint) и selectionArea().boundingRect(), и собственно реализовать их так же не трудно...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 28, 2013, 15:06 »

Где я ошибся, может мне просто заменить на QVector<QRect>?
Что ты хочешь получить в ответ, коли мы не видим твоего кода Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
andrek
Гость
« Ответ #2 : Март 28, 2013, 15:28 »

сейчас подумал, над собственными словами и понял, я же добавлял в QPainterPath все QRect каждого выделенного item. А проще вычислить общий QRect и добавить всего один элемент в QPainterPath. и рисовать выделенную область исходя уже от него. Проверил стало быстрее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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