请看下面的代码:
from tkinter import *
# Creating Listbox
list = Listbox(window, selectmode = "multiple", font = ("Consolas", 21), width=100, cursor='dot')
# Inserting items in Listbox
list.insert(0, 'activity1')
list.insert(1, 'activity2')
list.insert(2, 'activity3')
list.insert(3, 'activity4')
list.pack()
def go(event):
list = event.widget
progressbar.set(len(list.curselection()))
progressbar = customtkinter.CTkProgressBar(master=window, width=100, height=20, border_width=5)
progressbar.pack()
progressbar.bind('<<Listbox>>', go)
我希望上述代码在每次单击列表框中的项目时移动进度条。它根本不动
from tkinter import *
from tkinter import ttk
def go(event):
selected_items = list.curselection()
progressbar['value'] = len(selected_items)
window = Tk()
list = Listbox(window, selectmode="multiple", font=("Consolas", 21),
width=100, cursor='dot')
list.insert(0, 'activity1')
list.insert(1, 'activity2')
list.insert(2, 'activity3')
list.insert(3, 'activity4')
list.pack()
progressbar = ttk.Progressbar(window, length=100, mode='determinate')
progressbar.pack()
list.bind('<<ListboxSelect>>', go)
window.mainloop()
progressbar.set(len(selected_items))
更改为 progressbar['value'] = len(selected_items)
。这会将进度条的值设置为所选项目的数量。mode='determinate'
。这将进度条的模式设置为确定,这允许您手动设置值。