我正在开发一个用于绘制网络图的小应用程序,显示“你的ping有多快”。 Here是相关的代码审核帖子。
基本上,我有一个管理画布的线程。该主题针对以下方法(简化):
def update(self):
# Basically draw a vertical line on the right of the canvas
self.draw_line(tag="spike")
# Move all lines by -1 px and delete the lines outside the canvas
# This can be somewhat long.
lines = list(self.canvas.find_withtag("spike"))
while len(lines) > self.WIDTH:
self.canvas.delete(lines.pop(0))
for l in lines:
x0, y0, x1, y1 = self.canvas.coords(l)
self.canvas.coords(l, x0 - 1, y0, x1 - 1, y1)
# Recall in 10ms
if self.alive:
self.root.after(10, self.update)
您可能认为,此功能在大型画布上有点慢(例如800x600)。因为它在>>计算之后使用了一个召回方法,所以我的召回时间为computation_time + 10
ms。我希望召回时间正好是10毫秒。
正如我在a SO post about PyGame上看到的那样,方法pygame.time.set_timer()
在PyGame上做了这样的事情。我想知道是否有Tkinter
的等价物。
Rergards,