hier ist ein Beispielcode von Michael,
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
# Textwidget statt Canvas, das kann mehr als man denkt
text = tk.Text(root, width=60, height=20)
text.grid(row=2, column=1)
# nur die Scrollbar einfuegen
scroll_y = tk.Scrollbar(root, orient=tk.VERTICAL, command=text.yview)
scroll_y.grid(row=2, column=2, sticky=tk.NS)
# xml-Datendict und variablen-Zwischenspeicher initialisieren
xml_dict = {"Vorname":"Michael", "Nachname":"Ballack", "Position":"Mittelfeld"}
variable_dict = {}
# xml-Daten einfuellen, pro Eintrag eine tk-Variable definieren und ein
# Entry einfuegen
for tag_name, default_value in xml_dict.iteritems():
text.insert(tk.END, "%s: "%tag_name)
tk_var = tk.StringVar()
tk_var.set(default_value)
variable_dict[tag_name] = tk_var
text.window_create(tk.END, window=tk.Entry(text, width=20, textvariable=tk_var))
text.insert(tk.END, "\n")
# Scrollbalken verknuepfen und Textaenderungen unterbinden
text.config(yscrollcommand=scroll_y.set, state=tk.DISABLED)
root.mainloop()
# Ergebnisdict aus den xml-Schluesseln und den tk-Variablen ermitteln
result_dict = dict([(tag, variable_dict[tag].get()) for tag in xml_dict])
print result_dict
Es soll dann so aussehen, dass "Name" links am Rand steht, und das Entry mit "Ballack" drin rechts am Rand steht?