Переназначение части 'command' ряда кнопок tkinter, созданных с использованием класса - PullRequest
0 голосов
/ 10 января 2019

На полпути через мою программу я хочу изменить диапазон команд экземпляра кнопки «при нажатии». Кнопки были созданы с использованием следующего класса:

class GameBoardButtons:

def __init__(self, name, buttonText, buttonRow, buttonColumn, buttonState, frame, colour):
    self.name = name
    self.button = Button(frame, text=buttonText, fg=colour,
                         height=2, width=5, state=buttonState,
                         command=lambda: shipListAppendFunc(self))
    self.button.grid(row=buttonRow, column=buttonColumn)

def GridPosAttackable(self):
    self.button.config(command=lambda: whenAttacked(self.name))

И функция, которую я вызываю для настройки кнопок, выглядит следующим образом:

def reconfigureButtons(grid):

    children = grid.children
    for c in children:
        widget = children[c]
        if isinstance(widget, (Button)):
            widget.configure(command=lambda: whenAttacked(c.name))

Должен ли я вместо этого вызывать функцию внутри класса ("GridPosAttackable")? И если так, как бы я это сделал? Текущий способ, которым я имею это, все кнопки вызывают то же самое "self.name", не их уникальное имя.

Я хочу, чтобы при вызове «whenAttacked (что угодно)» поле / «любая» часть, которую он занимает, представляло собой уникальный идентификатор кнопки / метку «self».

Большое спасибо всем формам помощи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...