Название: Тормоза QGraphicsView при ScrollHandDrag mode. Отправлено: kamre от Январь 15, 2009, 18:09 Пытаюсь понять, как можно сделать перетаскивание сцены с помощью мышки. Пока даже в таком простейшем примере получаются тормоза (особенно после разворачивания окна на весь экран):
Код
Что я делаю не так? Кстати, точно такая же проблема у меня получается если в примере 40000 chips выставить режим ScrollHandDrag. Название: Re: Тормоза QGraphicsView при ScrollHandDrag mode. Отправлено: Khs от Январь 15, 2009, 19:50 Цитировать Пытаюсь понять, как можно сделать перетаскивание сцены с помощью мышки На самом деле происходит не перетаскивание сцены, а прокрутка представления относительно позиции зажатого курсора, если можно так сказать. Цитировать Пока даже в таком простейшем примере получаются тормоза (особенно после разворачивания окна на весь экран) У меня этот код работает, не вижу никаких тормозов, все что требуется от view->setDragMode(QGraphicsView::ScrollHandDrag);, выполняется. Возможно я чего-то неправильно понял. Название: Re: Тормоза QGraphicsView при ScrollHandDrag mode. Отправлено: kamre от Январь 15, 2009, 20:17 Цитировать Пока даже в таком простейшем примере получаются тормоза (особенно после разворачивания окна на весь экран) У меня этот код работает, не вижу никаких тормозов, все что требуется отview->setDragMode(QGraphicsView::ScrollHandDrag);, выполняется. Возможно я чего-то неправильно понял. Похоже оно все-таки пытается какой-то скроллинг системный задействовать, т.к. судя по показаниям Process Explorer время процессора в системных вызовах практически все тратится... Еще обнаружил, что установка флага setViewportUpdateMode(QGraphicsView::FullViewportUpdate) решает проблему, т.к. в этом случае перерисовывается все внутри QGraphicsView.. Как-то не оптимально получается... Название: Re: Тормоза QGraphicsView при ScrollHandDrag mode. Отправлено: BaltikS от Январь 15, 2009, 21:29 Подобная проблема уже обсуждалась, но решена не была. Полагаю, что дело в кривых драйверах или кривой реализации....
|