Как я могу получить текстовую переменную на эти кнопки, работающие для шахматной программы - PullRequest
0 голосов
/ 20 сентября 2019

Я пишу шахматную программу, используя 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...