Я пытаюсь сослаться на специфику c tkinter Label
в функции, основанной на вводе аргумента. Я пробовал много вещей и нашел несколько тем о exe c, eval и переменных переменных, но я хочу держаться подальше от плохих практик (в любом случае я не знаю, как добиться этого с помощью этих методов). Мне кажется, что мне не хватает чего-то очень простого c, но я не могу обернуть это голову.
Ниже приведен упрощенный код моей функции:
def myFunction(input_num):
while ArbitraryVariableName == False:
# Do stuff in while loop
if input_num== "1":
self.lbl1["text"] = "New Value 1"
elif input_num == "2":
self.lbl2["text"] = "New Value 2"
elif input_num== "3":
self.lbl3["text"] = "New Value 3"
elif input_num== "4":
self.lbl4["text"] = "New Value 4"
elif input_num== "5":
self.lbl5["text"] = "New Value 5"
# And so forth for 20+ more elif statements
You заметит, что input_num
напрямую относится к определенному c tkinter Label
имени «lbl + input_num
». Если это помогает, ниже приведен код для одной из двух этикеток (все они следуют схожему шаблону):
self.lbl1 = Label(topframe, text="Old Value Test 1")
self.lbl1 .grid(column=1, row=1)
self.lbl2 = Label(topframe, text="Old Value Test 2")
self.lbl2 .grid(column=1, row=2)
# And so forth
Есть ли более чистый и менее повторяющийся способ сделать это?