Удалить выбранный элемент из списка - PullRequest
0 голосов
/ 10 февраля 2020

Я могу удалить элементы из базы данных, но отображается только при закрытии приложения и его повторном запуске.

def delete_command():
    backend.remove(selected[0])

def get_item(event):
    global selected
    index=lb.curselection()
    selected= lb.get(index)
    return selected

lb= Listbox(window)
lb.grid(row=4, column=0, rowspan= 5, columnspan=1)
lb.bind("<<ListboxSelect>>", get_item)

b2 = Button(window, text="Delete", command=delete_command)
b2.grid(row=5, column=2)

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Похоже, вы забыли удалить элемент из списка.

def delete_command():
    backend.remove(selected[0])
    lb.delete(index)

def get_item(event):
    global selected,index
    index=lb.curselection()
    selected= lb.get(index)
    return selected

lb= Listbox(window)
lb.grid(row=4, column=0, rowspan= 5, columnspan=1)
lb.bind("<<ListboxSelect>>", get_item)

b2 = Button(window, text="Delete", command=delete_command)
b2.grid(row=5, column=2)

Мне также очень жаль говорить, что качество вашего кода довольно низкое. Не определяйте глобальные переменные, если это не действительно необходимо.

0 голосов
/ 10 февраля 2020

В вашем случае вам не нужно связывать <<ListboxSelect>>, чтобы получить выбранные предметы. Просто выберите выбранные элементы в delete_command():

def delete_command():
    selected = lb.curselection()
    if selected:
        backend.remove(selected[0])
        lb.delete(selected)

Если вам нужно что-то сделать, когда вы выбираете элемент в списке, вам нужно привязать событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...