Ich habe zwei Listboxen. Wenn Sie auf ein Element der ersten Listbox klicken, werden Informationen in die zweite Listbox eingefügt.Auswahl aus Listbox, die durch Auswahl aus einer anderen Listbox gefüllt wird
Wenn ich auf eines der eingefügten Elemente klicke, erhalte ich einen Fehler.
Die Listboxen sind definiert als:
list_1 = Listbox(root,selectmode=SINGLE)
list_2 = Listbox(root,selectmode=SINGLE)
das ausgewählte Element zu erhalten:
list_1.bind('<<ListboxSelect>>',CurSelect)
, die sich bezieht:
def CurSelect(evt):
list_2.delete(0,END)
selected = list_1.get(list_1.curselection())
for i in range(2):
list_2.insert(END,i)
Ein Klick auf ein Element von list_1 fügt Artikel
in Liste_2.Wenn ich einen Artikel von List_2 wähle dies erscheint:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\XXX\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call
__
return self.func(*args)
File "unbenannt.py", line 28, in CurSelect
selected = liste.get(liste.curselection())
File "C:\Users\XXX\Anaconda3\lib\tkinter\__init__.py", line 2792, in get
return self.tk.call(self._w, 'get', first)
_tkinter.TclError: bad listbox index "": must be active, anchor, end, @x,y, or a
number
ich diese Art von Problem hatte, als in den ersten Listbox Auswahl, aber es gelöst mit < < ListboxSelect >>.
Zuvor Elemente in der zweiten Listbox funktioniert, obwohl ich seitdem nichts geändert habe.
Vollcodebeispiel:
from tkinter import *
class Code():
def __init__(self):
Code.Window(self)
def Window(self):
root = Tk()
scrollbar = Scrollbar(root)
scrollbar.grid(row=4,rowspan=3,column=1,sticky=N+S+W)
liste = Listbox(root,selectmode=SINGLE,width=12,yscrollcommand=scrollbar.set)
liste.grid(row=4,rowspan=3,column=0)
for j in range(2):
liste.insert(END,j+5)
scrollbar.config(command=liste.yview)
scrollbar_2 = Scrollbar(root)
scrollbar_2.grid(row=4,rowspan=3,column=3,sticky=N+S+W)
eintrag = Listbox(root,selectmode=SINGLE,yscrollcommand=scrollbar_2.set)
eintrag.grid(row=4,rowspan=3,column=2,sticky=W)
def CurSelect(evt):
eintrag.delete(0,END)
selected = liste.get(liste.curselection())
for i in range(2):
eintrag.insert(END,str(i)+str(selected))
liste.bind('<<ListboxSelect>>',CurSelect)
root.mainloop()
Code()
Dieses Beispiel ist nicht etwas Sinnvolles machen, aber das Problem scheint sowieso.
Pleaser ein komplettes [MCVE] erstellen. –
ok nur einen Moment – Wolfmercury
Ihr Code scheint für mich gut zu funktionieren. Es ist jedoch klar, dass dieser Code nicht den Fehler erzeugt, von dem Sie sagen, dass er dies tut. Bitte posten Sie _actual_ code und den _actual_ error, den Sie erhalten. –