Доступ к виджету Tkinter напрямую по его имени, когда он содержится в списке - PullRequest
0 голосов
/ 20 октября 2018

У меня сложный интерфейс с графическим интерфейсом, и чтобы код в моем методе __init__ был как можно более кратким, мне нравится создавать виджеты того же типа в списке.У меня вопрос, как я могу получить доступ к определенному виджету по имени, если он содержится в списке, не просматривая список и не сравнивая имя.

Вот пример кода.

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

def change():
    for l in labs:
        if l._name == s.get():
            l.configure(text="Changed")
            return

labs = []
for x in range(5):
    labs.append(tk.Label(root, text="Original", name=str(x)))
    labs[x].pack()

b = ttk.Button(root, text="Change", command=change)
s = tk.Spinbox(width=2, values=[0,1,2,3,4])
s.pack()
b.pack()

root.mainloop()

В функции change() я хочу настроить текст, не просматривая весь список.Это вообще возможно?

1 Ответ

0 голосов
/ 20 октября 2018

Хорошо, возможно, это правильный путь:

def change():
    root.children[str(s.get())].configure(text="Changed")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...