[Python-de] Listbox und curselection()

Georg Mischler schorsch at schorsch.com
Die Jul 29 13:03:49 EDT 2003


Albert Hermeling wrote:

> Guten Abend,
>
> für die Verwendung in einem Dialog habe ich folgende Klasse (hier gekuertzt
> wiedergegeben) programmiert:

> ....

> if __name__ == "__main__":
>
>     tk=Tkinter.Tk()
>     dia=Listbox(tk,EXTENDED)
>     dia.einlesen()
>
>     if dia.show() == "ok":
>         print dia.auslesen()
>     else:
>         print "Abgebrochen"
>
> wenn ich das Programm starte und irgend ein Element auswähle und mit OK
> bestaetige bekomme ich folgende Fehlermeldung:
>
>     ...
> TclError: invalid command name ".136326436.136699908"
>
> Ich glaube der Fehler haengt mit der Methode curselection() zusammen, weiter
> komme ich aber nicht.

Wenn du dia.auslesen() aufrufst, dann existiert self.listbox
nicht mehr, da du vorher schon die ganze Widget-Hierarchie
abgerissen hast. Du must im Callback für den OK-Button den
aktuellen Wert in einem Instanz-Attribut hinterlegen, und
in auslesen() dann auf dieses Attribut zurückgreifen.


-schorsch

-- 
Georg Mischler  --  simulations developer  --  schorsch at schorsch com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/