Der Zugriff auf ein Tkinter-Widget direkt durch ihren Namen, wenn sie in einer Liste gehalten

stimmen
0

Ich habe eine komplizierte GUI - Schnittstelle und den Code in meiner zu halten __init__Methode so präzise wie möglich Ich mag Widgets des gleichen Typs in einer Liste erstellen. Meine Frage ist , wie kann ich ein bestimmtes Widget mit Namen zugreifen , wenn es ohne Iteration durch die Liste in einer Liste gehalten wird und zum Vergleich der Namen.

Hier ist ein Beispiel-Code.

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()

In der change()Funktion möchte ich den Text konfigurieren , ohne durch die gesamte Liste iterieren. Ist das überhaupt möglich?

Veröffentlicht am 20/10/2018 um 12:26
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Okay, vielleicht ist dies der richtige Weg:

def change():
    root.children[str(s.get())].configure(text="Changed")
Beantwortet am 20/10/2018 um 12:28
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more