如何通过python Tkinter移动列表框的项目



我在Tkinter中有以下python代码。

import tkinter as tk
window = tk.Tk()
window.geometry('200x200')
label_var = tk.StringVar()
l = tk.Label(window, bg='yellow', width=4, textvariable=label_var)
l.pack()

我想在单击"下一项"按钮时移动列表框的项目,但项目门槛停止在项目1处 不移动(移动到项目2(

def move():
value = lb.get(lb.curselection())
label_var.set(value)
# move items of listbox 1, 2, 3, 4
index = lb.curselection()[0] 
lb.select_set(index + 1)  # move to item2 but default still stop at items 1

var = tk.StringVar()
var.set((1,2,3,4))
lb = tk.Listbox(window, listvariable=var)
lb.pack()
b1 = tk.Button(window, text='Next item', command=move)
b1.pack()
window.mainloop()

如何解决。

这是你的方法应该的样子 -

def move():
value = lb.get(lb.curselection())
x1 = lb.curselection()[0]
lb.selection_clear(x1)
if x1+1==lb.size():
lb.selection_set(0)
else:
lb.selection_set(x1+1)
label_var.set(value)

请注意,您需要处理极端情况,即列表末尾。在此代码中,在列表的末尾,我在开头重新启动。

最新更新