while 循环导致 Tkinter canvas 不工作

While loop cause Tkinter canvas to not work

我正在制作一个放在 canvas 上的计时器。一切都很顺利,直到我放置了一个 while 循环,这导致我的 Tkinter canvas 开始工作。这是我的问题的简化版本。

    from tkinter import *

    class Second(Frame):
        def __init__(self,master):
            super(Second, self).__init__(master)
            self.grid()
            self.TimerFrame = Frame(self)
            self.create_Timer_widgets()
            self.TimerFrame.grid()
        def create_Timer_widgets(self):
            self.canvas = Canvas(self.TimerFrame,height = 100, width = 850, bg = "light grey")
            self.canvas.grid(row=0,column=0)
            self.canvas.create_text(400,50,text ="X")    
            self.canvas.create_text(75,50,text="N)")

            mins = 1 
            while mins > 0 :
                if len(str(mins)) == 1  :
                    self.canvas.create_text(825,50,text = "0")
                self.canvas.update() 

    root = Tk()
    x = Second(root)
    root.configure(background='light grey')
    root.mainloop()

当我 运行 这段代码没有任何反应。炮弹什么都不做。删除 while 循环后:

mins = 1
while mins > 0 :
    if len(str(mins)) == 1  :
        self.canvas.create_text(825,50,text = "0")
     self.canvas.update()

那是代码的一部分^^,我的代码有效。显示一切正常。我在网上找到了一些东西,但这并没有太大帮助。我还删除了 'self.TimerFrame' 部分并修复了我的代码,即使没有删除 while 循环,但我不能这样做,因为那样我的代码就会乱七八糟。 感谢您的帮助。

这段代码的问题在于它永远不会退出 while 循环。最好是 -

  1. 你只是 运行 代码一次并删除了实际的循环部分,

  2. 如果你想退出循环时设置mins = 0。循环永远持续下去,因为永远不会满足退出条件。