Tkinter-Listbox选择当前突出显示的项目的倒数

时间:2018-11-15 12:50:05

标签: python tkinter

我正在尝试创建一个按钮,该按钮将自动选择当前所选内容的倒数。我很少尝试在下面的代码中尝试创建此功能,但是它不起作用。在我的代码中,我试图突出显示所有内容,然后取消选择最初选择的内容,这等同于获得逆函数。有人可以看一下我的代码,看看有什么问题吗?

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()

1 个答案:

答案 0 :(得分:3)

您快到了,但是您不需要列表框项目的实际值。您只能使用索引进行操作。

此外,您不需要(至少不需要执行此特定任务)绑定到select的{​​{1}}方法。您可以直接在lstbox中工作。

select_inverse