在 GUI 中生成 2 个单击选择列表框。一个不工作。遇到错误

问题描述 投票:0回答:0

我有两个列表框,每个都引用一个单独的文本文件。当我在 classList 框中单击时它起作用(光标选择填充到文本框)。

如果我先点击 speciesList 框,什么也不会发生(没有填充到文本框,没有错误)。如果我先点击 classList,然后点击 speciesList,我会得到一个错误:

Tkinter 回调异常 追溯(最近一次通话): 文件“C:\Users\owner\AppData\Local\Programs\Python\Python311\Lib kinter_init_.py”,第 1948 行,在call 返回 self.func(*args) ^^^^^^^^^^^^^^^^ 文件“C:\Users\owner\OneDrive\Desktop\CS113\Final\CharBuilder GUI.py”,第 6 行,在 classList 中 线= lst1.get(lst1.curselection()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“C:\Users\owner\AppData\Local\Programs\Python\Python311\Lib kinter_init_.py”,第 3253 行,在 get 返回 self.tk.call(self._w, 'get', first) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _tkinter.TclError:错误的列表框索引“”:必须是活动的、锚点、结尾、@x、y 或数字 Tkinter 回调异常

def speciesList(lineList2):
    line2= lst2.get(lst2.curselection()) 
    lineList2= line2.split(',')
    txt15.delete(1.0, tk.END) 
    txt15.insert(tk.END, lineList2[0])
    return lineList2[0]

def classList(lineList):
    line= lst1.get(lst1.curselection()) 
    lineList= line.split(',')
    txt8.delete(1.0, tk.END) 
    txt8.insert(tk.END, lineList[0])
    return lineList[0]

infile = open("datafiles/specieslist.txt", 'r') 
for line2 in infile:
    ##line= line.split(',')
    lst2.insert(tk.END, line2) 
infile.close() 

lst1=tk.Listbox(height=6, width=25) 
lst1.grid(column=6, row=1, rowspan=5) 
lst1.bind("<<ListboxSelect>>", classList) 

infile = open("datafiles/classlist.txt", 'r') 
for line in infile:
    ##line= line.split(',')
    lst1.insert(tk.END, line) 
infile.close()

期望是我单击每个列表并将所选项目填充到其相应的文本框。

真的对问题是什么感到困惑。我从工作 listBox 复制/粘贴代码并重命名变量(据我所知我得到了它们),并适当地更改了文件引用。

listbox cursor z-index
© www.soinside.com 2019 - 2024. All rights reserved.