두 개의 목록 상자가 있습니다. 첫 번째 목록 상자의 항목을 클릭하면 두 번째 목록에 정보가 삽입됩니다.목록 상자에서 선택 다른 목록 상자에서 선택하여 채워집니다
삽입 된 항목 중 하나를 클릭하면 오류가 발생합니다.
list_1.bind('<<ListboxSelect>>',CurSelect)
에 의미 :
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)
클릭 list_1의 한 항목에서 항목을 삽입
list_1 = Listbox(root,selectmode=SINGLE)
list_2 = Listbox(root,selectmode=SINGLE)
선택한 항목을 얻으려면 :
리스트 박스
는 다음과 같이 정의된다 list_2. 내가 List_2의 항목을 선택하면이 나타납니다
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
내가 첫 번째 목록 상자에서 선택 이런 종류의 문제를했지만 >> < < ListboxSelect 그것을 해결했다.
이전에 두 번째 목록 상자에서 항목을 클릭하면 작업이 완료되었지만 그 이후로는 아무 것도 변경하지 않았습니다.
전체 코드 예제 :
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()
이 예는 아무것도 유용하지 않지만, 문제는 어쨌든 나타납니다.
기쁨 완전한 [mcve] 만든다. –
ok 잠시만 – Wolfmercury
코드가 제대로 작동하는 것 같습니다. 그러나이 코드는 사용자가 말하는 오류를 생성하지 않습니다. _actual_ 코드와 _actual_ 오류를 게시하십시오. –