win=Tk()
level1=matrixmaker(4)
def display(x,y):
if z["text"] == " ":
# switch to Goodbye
z["text"] = level1[x][y]
else:
# reset to Hi
z["text"] = " "
for x in range(0,4):
for y in range(0,4):
z=Button(win,text=" ", command=display(x,y))
z.grid(row=x,column=y)
我有這段代碼但我不知道如何讓顯示功能工作。如何在不具有硬編碼變量名稱的情況下調用按鈕並更改文本?更改tkinter內的按鈕
在Tkinter中,'command'參數是_reference_函數,而不是函數本身。你必須將參數變成沒有參數的'command = display'。看到這裏:http://stackoverflow.com/questions/6920302/how-to-pass-arguments-to-a-button-command-in-tkinter –
此外,你只有兩個參數調用三個參數函數(無論如何都不能添加)。 –
使用'command = lambda a = x,b = y:display(a,b)' – furas