python - 防止屏幕上快速移动的物体模糊

标签 python image qt animation antialiasing

我正在使用 Qt 框架用 Python 编写一个桌面应用程序,它涉及以相当快的速度在屏幕上扫动图像。我以一种非常简单的方式做到这一点:

  • 对于每个项目,创建一个带有关联图像的 Qlabel 对象
  • 使用 startTimer 为每个 Qlabel 启动计时器
  • timerEvent 会导致类似于以下内容的调用:self.move(self.x() + SPEED, self.y()),其中 SPEED 是一些少量的像素。

这可行,但即使在中等速度(例如每秒 500 像素)下,图像(在本例中我使用的是扑克牌)看起来也非常痛苦。有很多水平模糊。我认为我可以通过更改计时器关闭的频率来缓解这种情况(以便图像移动的次数减少,或者移动的次数减少),但这并没有真正的帮助。

谁能解释一下是什么原因造成的,以及我该如何解决它?我已阅读关于 Motion Blur 的维基百科文章,但并没有多大帮助。当有人问我是什么原因造成的时,我说了一些关于显示器响应时间的事情,但我并不相信这一点,当他们问我“那为什么当你玩电子游戏时不会发生这种情况呢?”我无法给出答案。

编辑:根据要求,here's a paste展示问题的玩具程序。将图像文件的路径作为命令行参数。

最佳答案

看起来像是由于缺少double buffering而闪烁。 。我不确定如何在您的特定工具包中解决它,但这应该为您指明正确的方向。

关于python - 防止屏幕上快速移动的物体模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112110/

相关文章:

python - 使用 html5lib 将任何 HTML 解析为 XML

python - 以二维特征数组作为输入的高斯过程 - scikit-learn

Python电梯模拟问题

html - 是否可以在幻灯片放映之上设置永久图像

image - xamarin.forms 从图像源获取字节数组

c++ - 无法在 QTableView 上检测到 "Keypress"?

c++ - 在 QString 中使用引号时出错

python - 尝试传递 Python 的 C 代码,总线出现错误 IndexError : list assignment index out of range

c++ - QQmlApplicationEngine 和 WindowFlags

android - 9-patch 拉伸(stretch),当它不应该拉伸(stretch)时,Android