У меня есть список tkinter, в котором нужно всегда выбирать некоторые элементы в списке. В моем приложении эти элементы требуются пользователем, тогда как некоторые другие элементы в списке являются необязательными (должны быть выбраны/отменены).Сделать некоторые элементы списка Tkinter всегда выбранными
Большинство примеров связывают функцию, используя '<<ListboxSelect>>'
.
Что я не понимаю, как получить точный элемент, выбранный пользователем из события привязки?
В моем примере код, apples
, peaches
, lettuce
выбраны изначально. Скажем, я нажимаю на apples
. Обычно это событие отменяет выбор apples
, но я хочу, чтобы моя функция запускалась и устанавливала выделение на apples
, поэтому она выглядит искусственно, как будто она не может быть отменена.
import tkinter as tk
root = tk.Tk()
requiredlb = tk.Listbox(root, exportselection=False, activestyle='none', selectmode=tk.MULTIPLE)
for i,item in enumerate(['apples', 'oranges', 'peaches', 'carrots', 'lettuce', 'grapes']):
requiredlb.insert(tk.END, item)
if i % 2 == 0:
requiredlb.selection_set(i)
requiredlb.grid(row=6, column=1, sticky='ew')
def always_selected(event):
widget = event.widget
## What Goes Here? ##
requiredlb.bind('<<ListboxSelect>>', func=always_selected)
root.mainloop()
Спасибо! Я могу сделать эту работу. Психическое удаление для себя: сначала создайте индексный список требуемых предметов, затем установите. – Jarad