Этот оператор возвращает кортеж, содержащий все значения во втором списке.
listbox_events_filtered.get(0,END)
Однако есть и ряд других проблем с вашим кодом:
def select_events()
также должно быть def select_events(event=None)
Вы связываете неправильный список с deselect_events; listbox_events_filtered.bind('<Left>', deselect_events)
current_list
в select_events()
является локальной переменной и не влияет на current_list
вне функции.
, возвращая current_list
в конце select_events()
ничего не делает, поскольку вы никому не назначаете функцию.
Наконец,
for item in current_list:
print(item)
будет выполняться только один раз, так как mainloop()
только повторяет события tkinter.
Имея все это в виду, вы должны вместо этого изменить свой код на что-то вроде этого:
from tkinter import *
from tkinter import ttk
my_window = Tk()
my_frame_in = Frame(my_window)
my_frame_in.grid(row=0, column=0)
my_frame_out = Frame(my_window)
my_frame_out.grid(row=0, column=1)
listbox_events = Listbox(my_frame_in, height='5')
listbox_events.grid(row=0, column=0, padx=10, pady=10)
listbox_events_filtered = Listbox(my_frame_out, height='5')
listbox_events_filtered.grid(row=0, column=2, padx=(0, 10), pady=10)
my_instructions = Label(my_window, text='Use arrow keys to move selected items')
my_instructions.grid(row=1, column=0, columnspan=3, pady=(0, 10))
my_list_events = ['A', 'B', 'C', 'D']
for item in my_list_events:
listbox_events.insert(END, item)
current_list = []
def select_events(event=None):
listbox_events_filtered.insert(END, listbox_events.get(ANCHOR))
listbox_events.delete(ANCHOR)
current_list.append(ANCHOR)
for item in listbox_events_filtered.get(0,END):
print(item)
def deselect_events(event=None):
listbox_events.insert(END, listbox_events_filtered.get(ANCHOR))
listbox_events_filtered.delete(ANCHOR)
for item in listbox_events_filtered.get(0,END):
print(item)
listbox_events.bind('<Right>', select_events)
listbox_events_filtered.bind('<Left>', deselect_events)
mainloop()
Надеюсь, этот ответ поможет вам решить ваши проблемы:)