Предотвращение размытия быстро движущихся объектов на экране - PullRequest
1 голос
/ 25 февраля 2011

Я пишу настольное приложение на Python с использованием фреймворка Qt, и оно включает в себя быстрое перемещение изображений по экрану.Я делаю это довольно простым способом:

  • Для каждого элемента создайте объект Qlabel со связанным изображением
  • Запустите таймер для каждого Qlabel, используя startTimer
  • timerEvent приводит к вызову, который выглядит примерно так: self.move (self.x () + SPEED, self.y ()) где SPEED - это небольшое количество пикселей.

Это работает, нодаже на скромных скоростях (скажем, 500 пикселей в секунду) изображения (в данном случае я использую игральные карты) действительно больно смотреть.Там много горизонтального размытия.Я подумал, что смогу смягчить это, изменив частоту, с которой отключается таймер (чтобы изображения перемещались больше или меньше, или меньше), но это не очень помогает.

Может кто-нибудь объяснить, что вызывает это, и как я могу это исправить?Я прочитал статью в Википедии о Размытие в движении , но это не сильно помогло.Когда кто-то спросил меня, что вызвало это, я сказал что-то о времени отклика монитора, но я не убедился в этом, и когда меня спросили: «Так почему же этого не происходит, когда вы играете в видеоигру?Я не мог дать ответ.

Редактировать : По запросу вот паста игрушечной программы, которая обнаруживает проблему.Получает путь к файлу изображения в качестве аргумента командной строки.

1 Ответ

1 голос
/ 25 февраля 2011

Это похоже на мерцание из-за отсутствия двойной буферизации . Я не уверен, как именно решить это в вашем конкретном наборе инструментов, но это должно указать вам правильное направление.

...