当我尝试刷新窗口时,我的应用程序冻结了(内部细节)

时间:2015-02-11 17:32:56

标签: python python-3.x tkinter

我的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

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方法。取消缩进最后三行并完全删除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)