我有一个函数,可以打开一个顶级窗口,放置一个listbox小部件,填充它,然后在关闭时将这些选择的值存储到一个列表中,但是我遇到了一个在任何google搜索中都找不到的错误。有什么想法吗
def select_exer():
#Create the new Window
sel_exer_window = tk.Toplevel(main)
sel_exer_window.geometry("+%d+%d" % (x+1150,y+180))
#Descriptive Text
exer_text = tk.Label(sel_exer_window, text="Select your exercises").pack()
exercise_list = tk.Listbox(sel_exer_window, selectmode='multiple')
exercise_list.pack()
def poplist():
lst = exer_options
exercise_list.insert("end",*lst)
poplist()
def on_closing():
#Unlocks the next Button
COUNT_DOWN_BUTTON.config(state="normal")
#Closes the Window
sel_exer_window.destroy()
#lst_var = [exercise_list.get(idx) for idx in exercise_list.curselection()]
lst_var = [exercise_list.get(idx) for idx in exercise_list.curselection()]
print(type(lst_var))
sel_exer_window.protocol("WM_DELETE_WINDOW", on_closing)
您正在调用
sel_exer_window.destroy()
,它调用exercise_list.destroy()
,它将销毁Listbox
。之后,您将尝试使用lst_var = [exercise_list.get(idx) for idx in exercise_list.curselection()]
获取其值。你不能从一个被破坏的小部件中得到任何东西。我建议您将其改为:相关问题 更多 >
编程相关推荐