Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: andrek от Март 28, 2013, 14:59



Название: QGraphicsScene, выделение области стоит ли связываться с QPainterPath?
Отправлено: 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(), и собственно реализовать их так же не трудно...


Название: Re: QGraphicsScene, выделение области стоит ли связываться с QPainterPath?
Отправлено: GreatSnake от Март 28, 2013, 15:06
Где я ошибся, может мне просто заменить на QVector<QRect>?
Что ты хочешь получить в ответ, коли мы не видим твоего кода ???


Название: Re: QGraphicsScene, выделение области стоит ли связываться с QPainterPath?
Отправлено: andrek от Март 28, 2013, 15:28
сейчас подумал, над собственными словами и понял, я же добавлял в QPainterPath все QRect каждого выделенного item. А проще вычислить общий QRect и добавить всего один элемент в QPainterPath. и рисовать выделенную область исходя уже от него. Проверил стало быстрее.