繁体   English   中英

如何使Tkinter应用运行得更快

[英]How can I make this Tkinter app run faster

我用Python Tk编写了一个简单的Conway的《生命游戏》,但它是如此之慢!
在我的PC上,它运行得还不错,但是在我的学校计算机上,每秒刷新不到10次。 我怀疑绘图部分滞后很多,该如何解决?

def drawCells(self):
    self.board.delete(tk.ALL)
    for i in range(self.gridsize):
        for j in range(self.gridsize):
            if self.cnow[j][i] == 1: # cells now list
                rect = self.board.create_rectangle(
                    i * self.grid,
                    j * self.grid,
                    (i + 1) * self.grid,
                    (j + 1) * self.grid,
                    fill="#000000")

我不知道是否需要粘贴整个类,但是如果需要,我将附加其余代码。

在画布上创建项目的速度很慢,创建的项目越多,创建它的速度就越慢(即使您每次都删除它们)。 相反,只需创建一次矩形,然后在每一代中简单地重新配置它们即可。

create_rectangle方法返回一个整数ID。 保存这些ID,然后使用itemconfigure方法更改颜色。

我只建议重写代码而不嵌入两个for循环(这会提高您的时间复杂度),但是我不确定这是否能完全解决您的问题,因为我不知道接下来会发生什么你的班。

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM