2015-02-11 90 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

相關問題