Может ли это быть так просто ...?
def select():
my_listbox_out.insert(END, my_listbox_in.get(ANCHOR))
# ---------------------^ forgot to specify insert point
Обновить до ответа
Что касается связывания; Я предполагаю, что вы имеете в виду привязку к клавишам со стрелками на клавиатуре. Тогда вот пример:
from tkinter import *
from tkinter import ttk
my_window = Tk()
my_listbox_in = Listbox(my_window, height='5')
my_listbox_in.grid(row=0, column=0, padx=10, pady=10)
my_listbox_out = Listbox(my_window, height='5')
my_listbox_out.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 = ['1', '2', '4', '6']
for item in my_list:
my_listbox_in.insert(END, item)
def select(event=None):
my_listbox_out.insert(END, my_listbox_in.get(ANCHOR))
my_listbox_in.delete(ANCHOR)
def deselect(event=None):
my_listbox_in.insert(END, my_listbox_out.get(ANCHOR))
my_listbox_out.delete(ANCHOR)
my_window.bind('<Right>', select)
my_window.bind('<Left>', deselect)
mainloop()
Функции не сохраняют порядок элементов, но вы можете позволить функции обратного вызова отсортировать их, если это важно.