簡體   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