Я пишу шахматную программу, используя python и tkinter, и недавно изменил текст на квадратах (кнопках) с text = ... на textvariable, и теперь он ничего не выводит в квадратах.Код, в котором я создаю кнопки (в цикле for):
pos=(x,9-y)
buttons=(tk.Button(self.boardframe, padx=10, textvariable=lambda position=pos: self.placepieces(position), relief="solid", font=self.piecefont, command=lambda position=pos: self.movepiece(position) ))
buttons.grid(column=(x-1), row=(y-1), sticky="W"+"E"+"N"+"S" )
@classmethod
def placepieces(cls, position):
black=Black()
white=White()
squareposition=position
icon=""
if squareposition in white.position.values():
for key in white.position:
value=white.position.get(key)
if value==squareposition:
if key.endswith("pawn"):
icon=white.pawntype[key]
elif key=="king":
icon=white.PIECES.get("KING")
elif key=="queen":
icon=white.PIECES.get("QUEEN")
elif key.endswith("bishop"):
icon=white.PIECES.get("BISHOP")
elif key.endswith("knight"):
icon=white.PIECES.get("KNIGHT")
else:
icon=white.PIECES.get("ROOK")
else:
pass
elif squareposition in black.position.values():
for key in black.position:
value=black.position.get(key)
if value==squareposition:
if key.endswith("pawn"):
icon=black.pawntype.get(key)
elif key=="king":
icon=black.PIECES.get("KING")
elif key=="queen":
icon=black.PIECES.get("QUEEN")
elif key.endswith("bishop"):
icon=black.PIECES.get("BISHOP")
elif key.endswith("knight"):
icon=black.PIECES.get("KNIGHT")
else:
icon=black.PIECES.get("ROOK")
break
else:
pass
else:
pass
return icon