Ich entwickle ein Skript, das GUIs automatisch nach dem Lesen eines Python-Skripts erstellen wird. Ich habe Probleme beim Abrufen der von mir erstellten Entry-Objekte, um einen Standardwert zu akzeptieren.Set tkinter Eintrag Standardwert
Ich übergebe meine Methode ein Wörterbuch (arg), das einen Standardwert und einen Variablennamen enthält.
def create_entry(self,
arg):
if 'default' in arg.keys():
var = StringVar(value=arg['default'])
else:
var = StringVar()
box = ttk.Entry(self.mainframe, textvariable=var)
box.grid(column=1, row=self.num, columnspan=2, sticky=(W, E))
label= ttk.Label(self.mainframe, text=arg['name']).grid(column=0, row=self.num, sticky=E)
return box, label
Das, was ich nicht erklären kann, ist, dass ein ähnliches Verfahren für Verzeichnisse Nachschlagen funktioniert gut ....
def create_askdirectory(self,
arg):
if 'default' in arg.keys():
var = StringVar(value=arg['default'])
else:
var = StringVar()
box = ttk.Entry(self.mainframe, textvariable=var)
box.grid(column=1, row=self.num, columnspan=2, sticky=(W, E))
def askdirectory():
dirname = filedialog.askdirectory()
if dirname:
var.set(dirname)
button = ttk.Button(self.mainframe, text='directory', command=askdirectory).grid(column=0, row=self.num)
return box, button
Das ganze 'if..else' könnte einfach' var = StringVar (Wert = arg.get ('default', '')) 'sein. – TigerhawkT3
Viel besser, danke, aber ich habe immer noch das gleiche Problem ... – WRJ