Я пытаюсь написать программу noughts and crosses и хочу, чтобы это было при нажатии кнопки, кнопка исчезает, и на ее месте появляется метка, однако, когда я запускаю код, как показано ниже, кнопки исчезают, но метки не отображаются, любая помощь будет оценена, и я извиняюсь, если это дублированный вопрос, но при поиске и ответе я не смог найти подходящую нить.Как получить ярлык, появляющийся при нажатии кнопки в python 3's tkinter
import sys
from tkinter import *
def hide_me(event):
event.widget.place_forget()
def play(row, column):
holdx = int()
holdy = int()
if row == 'A':
holdx = 100
elif row == 'B':
holdx = 200
elif row == 'C':
holdx = 300
else:
print('FATAL ERROR')
if column == 1:
holdy = 100
elif column == 2:
holdy = 200
elif column == 3:
holdy = 300
else:
print('FATAL ERROR')
placement = Label(text='HI').place(x=holdx,y=holdy)
mGui = Tk()
mGui.geometry('400x400')
mGui.configure(bg='#FFFFFF')
mGui.title('Noughts and Crosses')
mLabel= Label(text='Noughts and Crosses', bg='#FFFFFF').place(x=160,y = 50)
A1 = Button(mGui, text='A1', command = lambda: play('A', 2))
A1.bind('<Button-1>', hide_me)
A1.place(x=100,y=100)
A2 = Button(mGui, text='A2', command = lambda: play('A', 2))
A2.bind('<Button-1>', hide_me)
A2.place(x=200,y=100)
A3 = Button(mGui, text='A3', command = lambda: play('A', 3))
A3.bind('<Button-1>', hide_me)
A3.place(x=300,y=100)
B1 = Button(mGui, text='B1', command = lambda: play('B', 1))
B1.bind('<Button-1>', hide_me)
B1.place(x=100,y=200)
B2 = Button(mGui, text='B2', command = lambda: play('B', 2))
B2.bind('<Button-1>', hide_me)
B2.place(x=200,y=200)
B3 = Button(mGui, text='B3', command = lambda: play('B', 3))
B3.bind('<Button-1>', hide_me)
B3.place(x=300,y=200)
C1 = Button(mGui, text='C1', command = lambda: play('C', 1))
C1.bind('<Button-1>', hide_me)
C1.place(x=100,y=300)
C2 = Button(mGui, text='C2', command = lambda: play('C', 2))
C2.bind('<Button-1>', hide_me)
C2.place(x=200,y=300)
C3 = Button(mGui, text='C3', command = lambda: play('C', 3))
C3.bind('<Button-1>', hide_me)
C3.place(x=300,y=300)
mGui.mainloop()
Спасибо заранее всем, кто отвечает на мой вопрос.
вам нужно использовать 'stringVar' и установить' переменная = myStringVariable' вместо 'текста = blah' –
вам не нужно' BIND ('', ...) '-' Button' имеет 'command =', и вы можете назначить функцию с двумя действиями - 'play' и' hide_me' –
furas
'bind ('', ...)' щёлкните мышью и не отправляйте кнопку, чтобы она не выполнялась функция, назначенная командой 'command ='. Используйте только 'command =' и т. Д. 'play ('C', 2, C2)', чтобы скрыть 'C2' –
furas