在Tkinter上每隔x毫秒调用一个函数(Pygame的set_timer等价物)

时间:2016-07-06 12:10:42

标签: python tkinter

我正在开发一个用于绘制网络图的小应用程序,显示“你的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,

0 个答案:

没有答案