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 循环。最好是 -
你只是 运行 代码一次并删除了实际的循环部分,
如果你想退出循环时设置mins = 0
。循环永远持续下去,因为永远不会满足退出条件。
我正在制作一个放在 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 循环。最好是 -
你只是 运行 代码一次并删除了实际的循环部分,
如果你想退出循环时设置
mins = 0
。循环永远持续下去,因为永远不会满足退出条件。