Tkinter按钮命令执行不正确

时间:2018-10-11 10:00:54

标签: python python-3.x tkinter

我正在尝试制作井字游戏,我创建了带有for循环的按钮,并将它们按给定的代码保存在字典中-

from tkinter import *
class TicTac():
    def __init__(self):
        self.window = Tk()
        self.window.title('Tic Tac Game')
        self.btns = {}
        self.buttons()
    def change_state(self,button):
        if button.cget('text') == '':
            button.configure(text = 'X')

    def buttons(self):
        for i in range(1,4):
            for j in range(1,4):
                button = self.btns['{x}{y}'.format(x=str(i),y=str(j))] = Button(self.window,text='',width=15,height=7,
                                                                                command=lambda: self.change_state(button))
                button.grid(row=i, column=j)

T = TicTac()

当我单击任何按钮时,最后一个按钮(即9)的文本被更改,并且在打印语句中它仅打印.!button9而不是被单击的按钮,我想更改已被单击的按钮的文本。点击。

0 个答案:

没有答案