Ich möchte Informationen aus vielen tkinter Eingabefelder nehmen und dann in ein Wörterbuch, um in eine andere Funktion übergeben werden. Ich möchte, dass der Schlüssel der Name der Variablen (Eintrag) und der Wert der Text ist, der in dem Eingabefeld gespeichert ist. Ich bin in der Lage, alle Informationen zu sammeln, aber die Wörterbuchschlüssel sind nicht korrekt. Die Schlüssel verweisen auf den Eintrag, aber ich möchte, dass der Schlüssel der Variablenname ist, damit ich ihn später in einen Regex überführen kann. Dies ist der Code, den ich bisher benutzt habe.Wie tkinter Eintrag Informationen zu sammeln und in Wörterbuch eingeben
import tkinter as tk
class ExApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
# Build the container
container = tk.Frame(self)
container.pack(fill='both', expand=True)
container.grid_columnconfigure(0, weight=1)
container.grid_rowconfigure(0, weight=1)
self.frames = {}
frame = StartPage(container, self)
self.frames[StartPage] = frame
frame.grid(column = 0, row=0, sticky='nsew')
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
tlabel = tk.Label(self, text='This is just a test')
tlabel.pack()
pdc1 = tk.Entry(self)
pdc1.pack()
pdc2 = tk.Entry(self)
pdc2.pack()
pdc3 = tk.Entry(self)
pdc3.pack()
pdc4 = tk.Entry(self)
pdc4.pack()
self.entries = [pdc1, pdc2, pdc3, pdc4]
testbutton = tk.Button(self, text = 'test',
command= lambda: print(self.collect_entries(self.entries)))
testbutton.pack()
def collect_entries(self, list = []):
self.outputs = {}
for entry in list:
self.outputs[entry] = entry.get()
return self.outputs
app = ExApp()
app.mainloop()
Dies ist nur ein Testskript, aber meine tatsächliche enthält viel mehr Einträge. es endet damit, dass eine große Anzahl von Variablen an eine andere Funktion übergeben wird, aber ich denke, dass es mit einem einzigen Wörterbuch erreicht werden könnte.
Vielen Dank im Voraus.
Das funktioniert perfekt und wird wirklich mein Skript viel kürzer. Vielen Dank. – thepeach56