当我尝试刷新我的 window 时,我的应用程序冻结(内部详细信息)
My app freeze when I try to refresh my window (detail inside)
我的 Tkinter 程序有问题。
我已将此代码添加到我的程序中:
def display():
A1 = random.randint(1,7)
A2 = random.randint(1,6)
while True:
Pion_Rouge_N(A1, A2)
Pion_Jaune_N(A1, A2)
time.sleep(5)
当我 运行 这段代码时,我的程序冻结...我需要用 killall 命令杀死 python3。
我看到了这个网站,但我无法将此解决方案应用到我的应用程序中:http://stupidpythonideas.blogspot.fr/2013/10/why-your-gui-app-freezes.html
这是我的全部代码:https://ghostbin.com/paste/7n5sw
这是一个简单的修复。取消缩进最后三行并完全删除 while 循环。然后在您的代码底部添加类似 root.after(5000, display)
的内容,这样每 5 秒就会调用一次显示。 root
应该是您存储在其中创建的 Tk()
对象的变量。此代码的示例如下所示:
def display():
A1 = random.randint(1,7)
A2 = random.randint(1,6)
Pion_Rouge_N(A1, A2)
Pion_Jaune_N(A1, A2)
root.after(5000, display)
我的 Tkinter 程序有问题。
我已将此代码添加到我的程序中:
def display():
A1 = random.randint(1,7)
A2 = random.randint(1,6)
while True:
Pion_Rouge_N(A1, A2)
Pion_Jaune_N(A1, A2)
time.sleep(5)
当我 运行 这段代码时,我的程序冻结...我需要用 killall 命令杀死 python3。
我看到了这个网站,但我无法将此解决方案应用到我的应用程序中:http://stupidpythonideas.blogspot.fr/2013/10/why-your-gui-app-freezes.html
这是我的全部代码:https://ghostbin.com/paste/7n5sw
这是一个简单的修复。取消缩进最后三行并完全删除 while 循环。然后在您的代码底部添加类似 root.after(5000, display)
的内容,这样每 5 秒就会调用一次显示。 root
应该是您存储在其中创建的 Tk()
对象的变量。此代码的示例如下所示:
def display():
A1 = random.randint(1,7)
A2 = random.randint(1,6)
Pion_Rouge_N(A1, A2)
Pion_Jaune_N(A1, A2)
root.after(5000, display)