我在堆棧溢出處理過這裏的主題,但無法理解任何內容。 (是的,我已經看到答案已經回答,但真的不明白。)tkinter - python 3 - 清除屏幕
所以,這是事情。 我正在構建一個小型應用程序,可以將來自團隊的夫婦配對我們正在參加的比賽。我成功地建立了配對玩家的算法,並且我決定讓每個人都更容易接受,並開始研究ktinker。
我設法讓我的應用程序,以顯示是這樣的:
Title
info
info
info
info
info
Button
按鈕想重新運行整個事情(下一輪)和它的作品。我設法使用適當的標題,甚至在屏幕末尾添加了一個新按鈕。我遇到的唯一問題是我想擺脫上面的所有文字。摧毀它,只是畫一個新的頁面。
現在,代碼:
from tkinter import *
root = Tk()
root.title("Tournament")
root.geomerty("50x180")
app = Frame(root)
app.grid()
run_application() # my pairings
#inside the code i'm pairing the players and then:
for players in player_paired:
label=Label(app, text=players[0]+' vs. '+players[1] # its a tuple
label.grid()
button=Button(app,text="Next Round", command=run_application)
button.grid()
#end of run_application
root.mainloop()
所以,我嘗試添加到我的 「run_application」 開始的下一行:
app.destroy()
app = Frame(root)
app.grid()
,並得到「UnboundLocalError:局部變量「應用程序'參考之前「
會有人幫忙嗎?我無法弄清楚這一點。 (如果能夠寫例子,這將有很大幫助)
Ofek。
不,我不能使用run_application(app),因爲當我聲明按鈕「button = Button(app,text =」Next Round「,command = run_application)」並添加(app)時,它會自動運行它,結束了無盡的遞歸。所以,這不是這裏的解決方案。 –
我不確定您是否閱讀過重複內容。這不是它所暗示的。你有同樣的錯誤,同樣的問題,同樣的解決方案將起作用。 – jonrsharpe
我想我是。 python中的作用域不允許我在聲明它的函數之前「銷燬」應用程序。現在,如果我想用「app」作爲參數來調用函數,它會以無窮遞歸結束。 –