这是我的代码的摘录:
import tkinter as tk
def evaluate(event):
print(list_box.curselection())
root = tk.Tk()
var = tk.StringVar()
var.set(0)
entry = tk.Entry(root, textvariable = var)
entry.place(x = 150, y = 0, width = 20)
entry.bind("<Return>", evaluate)
list_box = tk.Listbox(root, selectmode = 'single')
list_box.place(x = 0, y = 0)
lst = [1, 2, 3]
for elem in lst:
list_box.insert('end', elem)
list_box.selection_set(first = 0)
list_box.bind("<<ListboxSelect>>", evaluate)
root.mainloop()
问题是我想以某种方式“修复”tkinter.Listbox 中最后一个选定的值。我的意思是,如果我们在窗口中为条目输入一些内容,那么在某些情况下(可能取决于您单击输入框的方式),在列表中选择的值将丢失。例如,是否可以保存上次选择的值?
我是 Python 的新手,特别是 tkinter 包,所以任何帮助将不胜感激。
问题是,一旦您选择了条目的输入等其他内容,您的列表框就会丢失显示的选择。我删除了双击的默认绑定,但是如果您仍然想使用它来编写输入,我无法删除单击(B1-Motion 也可以)。至少我不知道如何。我建议将条目用作显示,反之亦然。
import tkinter as tk
def evaluate(event):
print(list_box.curselection())
root = tk.Tk()
var = tk.StringVar()
var.set(0)
entry = tk.Entry(root, textvariable = var)
entry.place(x = 150, y = 0, width = 20)
entry.bind("<Return>", evaluate)
entry.bind('<Double-Button-1>', lambda e: "break")
list_box = tk.Listbox(root, selectmode = 'single')
list_box.place(x = 0, y = 0)
lst = [1, 2, 3]
for elem in lst:
list_box.insert('end', elem)
list_box.selection_set(first = 0)
list_box.bind("<<ListboxSelect>>", evaluate)
root.mainloop()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句