Используйте lambda
со строковым аргументом для кнопки command
и установите значение по умолчанию строкового аргумента для текста кнопки:
btnText = '%s' % (str(x_row)+str(y+1))
seats_button = tkinter.Button(windowmain, text = btnText, command = lambda s=btnText: messagebox.showinfo('Testing',s),font=customFont)
Это потому, что значение по умолчанию создается при определенииlambda
.
Предложение по изменению цвета сиденья в зависимости от вашего кода:
Изменить btn_list
с местного array
на глобальныйdictionary
используя btnText
в качестве ключа:
btn_list = {} # defined in global area and replaced the line btn_list = [] inside function bookinginterface()
...
btn_list[btnText] = seats_button # replaced the line btn_list.append(seats_button)
Определить новую функцию, которая будет вызываться лямбда-выражением:
def seat_selected(seatName):
messagebox.showinfo('Testing', seatName)
btn_list[seatName]["background"] = "whatever color you want"
# do other stuff you want
...
...
seats_button = tkinter.Button(windowmain, text=btnText, command=lambda s=btnText: seat_selected(s), font=customFont)