我正在尝试创建一个按钮,该按钮将自动选择当前所选内容的倒数。我很少尝试在下面的代码中尝试创建此功能,但是它不起作用。在我的代码中,我试图突出显示所有内容,然后取消选择最初选择的内容,这等同于获得逆函数。有人可以看一下我的代码,看看有什么问题吗?
from tkinter import *
from tkinter import ttk
main = Tk()
main.geometry("+50+150")
frame = ttk.Frame(main, padding=(3, 3, 12, 12))
frame.grid(column=0, row=0, sticky=(N, S, E, W))
lstbox = Listbox(frame, selectmode=MULTIPLE, width=20, height=10)
lstbox.grid(column=0, row=0, columnspan=2)
for i in range(10):
lstbox.insert(0, i)
def select(evt):
global selected
global selection
selection = lstbox.curselection()
for i in selection:
selected = lstbox.get(i)
print(selected)
lstbox.bind('<<ListboxSelect>>', select)
def select_inverse():
lstbox.selection_set(0, END)
lstbox.selection_clear(selected, selected)
btn = ttk.Button(frame, text="Inverse", command=select_inverse)
btn.grid(column=1, row=1)
main.mainloop()
答案 0 :(得分:3)
您快到了,但是您不需要列表框项目的实际值。您只能使用索引进行操作。
此外,您不需要(至少不需要执行此特定任务)绑定到select
的{{1}}方法。您可以直接在lstbox
中工作。
select_inverse