Я создал диалог, используя Tkinter в python. У меня есть 2 списка Wickbox, которые настроены для множественного выбора. Я установил события для каждого списка и использую curselection, чтобы получить список выбранных в данный момент элементов в списке. Однако, когда я нажимаю во втором списке, элементы в первом списке больше не выделяются. Ниже приведены некоторые фрагменты кода:
Создание первого списка:
casebox = Listbox(self.window, listvariable=casevalues, selectmode=MULTIPLE, width=10, height=10)
casebox.grid(column=1, row=self.dlgRow, columnspan=1, rowspan=2)
casebox.bind('<<ListboxSelect>>', oncaseselect)
Второе окно списка похоже:
plotbox = Listbox(self.window, listvariable=plotvalues, selectmode=MULTIPLE, width=30, height=10)
plotbox.grid(column=2, row=self.dlgRow, columnspan=2, rowspan=2)
plotbox.bind('<<ListboxSelect>>', onplotselect)
Поля списка отображаются правильно, и я могу Предварительный выбор элементов:
casebox.select_set(1)
casebox.select_set(3)
Когда я пытаюсь также предварительно выбрать элементы во втором списке, они выбираются, но в первом поле ничего не отображается:
plotbox.select_set(1)
plotbox.select_set(3)
Обработчики событий:
def oncaseselect(evt):
w = evt.widget
#self.selectedCaseList = [w.get(i) for i in w.curselection()]
self.selectedCaseList=[]
for i in w.curselection():
self.selectedCaseList.append(i)
refreshPlotList()
refreshCaseList()
def onplotselect(evt):
w = evt.widget
# self.selectedPlotList = [w.get(i) for i in w.curselection()]
self.selectedPlotList=[]
for i in w.curselection():
self.selectedPlotList.append(i)
refreshCaseList()
refreshPlotList()
Я добавил методы refre sh, чтобы обновлять выборки:
def refreshCaseList():
for item in self.selectedCaseList:
casebox.select_set(item)
def refreshPlotList():
for item in self.selectedPlotList:
plotbox.select_set(pitem)
Без метода refre sh, как только я нажимаю в сюжете, все варианты выбора в поле выбора не выбраны. При использовании методов refre sh происходит то же самое.
Похоже, что я могу отображать только выбранные элементы в одном из списков - тот, по которому щелкают
Любая помощь приветствуется .
боблы