@razrab228
html, люблю больше php.

Как выполнить функцию в bind listboxselect, передавая аргументы?

У меня есть проблема в коде:
for value in buttons_in_apps[0]:
    listbox.insert(END, value[0])
    listbox.bind('<<ListboxSelect>>', partial(open_app, root, "apps/" + value[1], user_id, 0))

здесь программа добавляет в listbox элементы из массива, и присваивает им функцию (open_app). При нажатии на элемент списка, программы мне пишет:
TypeError: open_app() takes 4 positional arguments but 5 were given

то-есть на 1 аргумент передано больше. Вот кстати функция:
def open_app(self, app_file, arguments, close_self):
    os.system(f'python {app_file}.py {arguments}')
    if close_self:
        self.quit()

тут надо всего 4 аргумента, но программа вставляет в код ещё 1 аргумент. как такое решить?
Если что, я также использую tkinter.
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы