2015-02-11 48 views
-2

我的程序在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

好你个'while'循环,永远不会结束,有什么办法?请阅读http://stackoverflow.com/help/mcve并提供一个完整的,最小的例子,*实际上重新创建问题*。 – jonrsharpe 2015-02-11 17:35:16

+0

我想每5秒显示一个令牌。对不起,我是初学者......感谢链接 – Ziph0n 2015-02-11 17:38:20

+0

为什么你不能应用你链接的解决方案?阅读那篇文章后你有什么尝试?第一部分非常精确地描述了你的问题。另外,你有没有搜索过这个网站?这类问题已经被问及几次回答。 – 2015-02-11 17:56:01

回答

1

这是一个简单的解决。取消缩进最后三行并完全删除while循环。然后在代码的底部添加一些东西,沿着root.after(5000, display)的行添加一些内容,以便显示每5秒调用一次。 root应该是你有你的这个代码应该是什么样子下面的示例创建storedthe 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) 
+0

谢谢!这工作! – Ziph0n 2015-02-11 18:48:34

相关问题