0
我試圖做到這一點,當用戶點擊一個按鈕時,它變成「X」或「0」(取決於他們的團隊)。我怎樣才能讓它更新按鈕上的文字?到目前爲止,我最好的想法是刪除按鈕然後再次打印它們,但只刪除一個按鈕。這是我迄今爲止:Python 3,Tkinter,如何更新按鈕文本
from tkinter import *
BoardValue = ["-","-","-","-","-","-","-","-","-"]
window = Tk()
window.title("Noughts And Crosses")
window.geometry("10x200")
v = StringVar()
Label(window, textvariable=v,pady=10).pack()
v.set("Noughts And Crosses")
def DrawBoard():
for i, b in enumerate(BoardValue):
global btn
if i%3 == 0:
row_frame = Frame(window)
row_frame.pack(side="top")
btn = Button(row_frame, text=b, relief=GROOVE, width=2, command = lambda: PlayMove())
btn.pack(side="left")
def PlayMove():
BoardValue[0] = "X"
btn.destroy()
DrawBoard()
DrawBoard()
window.mainloop()
我怎樣才能讓它點擊按鈕是一個變化,雖然。現在它只是由於某種原因更新最後一個按鈕 – Mrchooch
@Mchchooch你需要爲每個按鈕分配一個'tk.StringVar'。看看http://effbot.org/tkinterbook/variable.htm – David
你也可以直接調用按鈕的'configure'方法,而不必使用'StringVar'。雖然使用'StringVar'會起作用,它會添加一個額外的對象來維護,而不會帶來額外的好處。 –