Python уникальные текстовые переменные кнопки tkinter - PullRequest
0 голосов
/ 08 февраля 2020

Поэтому я пытаюсь создать сетку из 9 кнопок, которая при нажатии отображает их количество. Однако у меня возникают проблемы, когда я нажимаю одну кнопку, я в конечном итоге устанавливаю для всех их текстовых переменных одинаковое число. Как я могу создать уникальный textvariable для каждой кнопки?

Код:

from tkinter import *

root = Tk()

# Initialise items
num = 0
buttons = []
buttons_string = StringVar()


# My button function
def buttons_selection(a):
    print(a)
    buttons[a][1].set(a)


# Buttons is a 2d list where I store the button and it's text variable in
for i in range(9):
    buttons.append([])
    buttons[i].append(0)
    buttons[i].append(buttons_string)

# These for loops create the buttons
for x in range(3):
    for y in range(3):

        buttons[num][0] = Button(root, command=lambda a=num: buttons_selection(a),
                                 textvariable=buttons[num][1],  height=2, width=5) .grid(row=y, column=x)
        num += 1

root.mainloop()

Чтобы прояснить немного подробнее, эта конкретная строка является проблемой:

buttons[num][0] = Button(root, command=lambda a=num: buttons_selection(a),
                                 textvariable=buttons[num][1],  height=2, width=5) .grid(row=y, column=x)

Я хочу сделать так, чтобы уникальная переменная textvariable=buttons[num][1] сохранялась в кнопке или что-то в этом роде.

1 Ответ

0 голосов
/ 08 февраля 2020

Оказывается предположение, что acw1668 работал. Просто добавление новой строковой переменной работало нормально

buttons[i].append(StringVar())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...