как правильно назначить переменные переменные в Python?

#tkinter

Вопрос:

Я

 var1 = BooleanVar()
var2 = BooleanVar()
etc

    
Checkbutton(master, variable=var1).grid(row=1, column=1)
Checkbutton(master, variable=var2).grid(row=2, column=1)
etc
 

и каков наилучший способ их прочитать?

Комментарии:

1. Вы ищете: var1.get()

2. да, но можете ли вы сделать переменную переменной? как и varx,get()

3. Непонятно, зачем вам нужна наша помощь. Способ их установки задокументирован. Вы не проводили никаких исследований, прежде чем спросить?

4. я пробовал это сам в течение нескольких часов, дело в том, что там 100 флажков. поэтому я ищу способ назначить их с помощью цикла for. Я попытался использовать массивы и списки, а также команду .format. Но, похоже, ничего не вышло.

Ответ №1:

Попробуйте это:

 import tkinter as tk

def print_all():
    result = [var.get() for var in vars]
    print(result)

root = tk.Tk()

print_all_button = tk.Button(root, text="Click me", command=print_all)
print_all_button.pack()

vars = []

for i in range(5):
    var = tk.BooleanVar(root)

    button = tk.Checkbutton(root, variable=var)
    button.pack()

    vars.append(var)

root.mainloop()
 

Он создает 5 кнопок проверки в цикле for и сохраняет все BooleanVar s в списке, который называется vars . Позже в функции я могу вызвать var.get() для каждой переменной.

Комментарии:

1. Спасибо! это именно то, что мне было нужно. .добавление и корень являются новыми для меня. Но я смогу в этом разобраться. Большое спасибо

2. @GijsVanleeuwen .append -это метод, который вы можете вызывать в списках, чтобы что-то добавить в них. root это то, что я называл своим окном. Рад, что помог