Python 如何在列表框上绑定“全选”事件?
我有两个列表框。当选择一个列表框时,它会使用函数的输出触发end进行更新。当我使用事件单独单击每个选项时,这很好,但是我现在不知道如何使用“全选”按钮使其工作。全选按钮可以突出显示项目,但我无法让它更新第二个列表 评论来自一个网站Python 如何在列表框上绑定“全选”事件?,python,python-2.7,listbox,tkinter,bind,Python,Python 2.7,Listbox,Tkinter,Bind,我有两个列表框。当选择一个列表框时,它会使用函数的输出触发end进行更新。当我使用事件单独单击每个选项时,这很好,但是我现在不知道如何使用“全选”按钮使其工作。全选按钮可以突出显示项目,但我无法让它更新第二个列表 评论来自一个网站 您可以重用onSelect方法中的代码。您只需将event.widget替换为self.lb: 当然,这有点重复。两种方法都有相同的代码。最好采用单独的方法将其考虑在内: def get_selected_files(self): selection=self
您可以重用onSelect方法中的代码。您只需将event.widget替换为self.lb: 当然,这有点重复。两种方法都有相同的代码。最好采用单独的方法将其考虑在内:
def get_selected_files(self):
selection=self.lb.curselection()
files_avalibe = []
if selection:
for drive_i in selection:
selected_drive = rdrive[drive_i]
files_avalibe += sel_files[selected_drive]
return files_avalibe
然后调用onSelect中的get_selected_files和select_all_Drive方法:
选择所有驱动器功能可以触发事件:
def select_all_drives(self):
self.lb.select_set(0, END)
self.lb.event_generate("<<ListboxSelect>>")
您可以将更新文件列表框的代码打包到一个单独的方法中,当从另一个列表框选择驱动器或按下按钮时,将调用该方法。非常好!很好!
def get_selected_files(self):
selection=self.lb.curselection()
files_avalibe = []
if selection:
for drive_i in selection:
selected_drive = rdrive[drive_i]
files_avalibe += sel_files[selected_drive]
return files_avalibe
def onSelect(self, event):
self.update_file_list(self.get_selected_files())
...
def select_all_drives(self):
self.lb.select_set(0, END)
self.update_file_list(self.get_selected_files())
def select_all_drives(self):
self.lb.select_set(0, END)
self.lb.event_generate("<<ListboxSelect>>")