Имеются моменты, когда рисунок сцены меняется 3-4 раза в секунду. Однако наблюдаются конкретные тормоза. Это как-нибудь можно преодолеть?
а код то покажи, как ты это делаешь
про какой рисунок речь - какое-то изображение или вся сцена ?
Заметил одну фишку: прорисовка происходит, когда мышь остановится. если бесконечно двигать, то прорисовки нет. Отсюда тормоза! Таким образом, задача свелась к тому, как заставить рисовать во время движения мыши?
а где именно "3-4 раза в секунду" происходит ?
Ну, по крайней мере, в mouseMoveEvent так делать нельзя. Сообщений движения мыши генерируется очень много, а для глаза так часто перерисовывать нет смысла. Зато для процессора это нагрузка - вот и тормоза.
Навскидку (если, конечно, у QGraphicsView нет специальных методов - я им не пользовался, не знаю) можно сделать следующее:
1) завести флажок
bool m_bNeedRedraw;
который устанавливать по любому сообщению движения мыши в режиме MoveMap
2) по таймеру в 50...150 мс проверять состояние флажка и перерисовывать сцену, если надо
Тема с таймером хорошая. Однако, мне покоя не дает: почему событие mouseMoveEvent происходит только после полной остановки мыши?
возможно, отключен трекинг. Попробуй включить
setMouseTracking()
Отстальных условий работы твоей программы знать не могу
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)