Я делаю графический интерфейс крестиков-ноликов, используя Tkinter и кнопки. Покончил с некоторыми вещами, и теперь я хотел изменить цвет фона при нажатии одной из кнопок. То, что я делал до сих пор, я делал с лямбдой, но теперь я могу найти способ использовать параметр конфигурации функции Button из Tkinter. Я хотел добавить эту конфигурацию в функцию which_button, но ничего из того, что я мог найти, мне не помогло.
def __init__(self):
super().__init__()
self.button = {}
self.turn = 'X'
for i in range(3):
for j in range(3):
self.button[i, j] = Button(root, width=10, height=5, bg='#E0E0E0', fg='#6D6D6D', command=lambda i=i, j=j: self.which_button(i, j),).grid(row=i, column=j)
def which_button(self, i, j):
label = Label(root, text=self.turn, fg='#E0E0E0', bg='#6D6D6D')
label.grid(row=i, column=j)
Настроить кнопки можно так: self.button[i, j].config(...)
Но мне не понятно в чем именно у вас проблема.
Я провел исследование, и ничего из того, что я нашел, не помогло, метод self.button[i, j].config(...) тоже не работает. Я хотел изменить цвет фона нажатой кнопки, используя ту же функцию, которая меняет метку на ней.
Если кто-то ищет то же самое проблема была в том, что кнопки можно было настроить, потому что они даже нигде не сохранялись. Мое решение состояло в том, чтобы создать отдельную функцию для создания кнопок с оператором return для первоначального сохранения кнопок, а затем с помощью кортежей вызывать эти кнопки для их настройки.
def __init__(self):
super().__init__()
self.button = {}
self.turn = 'X'
for i in range(3):
for j in range(3):
self.button[(i,j)]=self.create_button(i, j)
def create_button(self, x, y):
self.button1 = Button(root, width=10, height=5, bg='#E0E0E0', fg='#6D6D6D', command=lambda i=x, j=y: self.pressed_button(i, j),)
self.button1.grid(row=x, column=y)
return self.button1
def pressed_button(self, i, j):
label = Label(root, text=self.turn, fg='#E0E0E0', bg='#6D6D6D')
label.grid(row=i, column=j)
self.button[(i, j)].configure(bg='#6D6D6D')
Таких вопросов на сайте много. Вы проводили какие-либо исследования?