Я делаю программу, которая импортирует пользовательский виджет, который является классом (он наследуется от виджета Tkinter Frame).Все прекрасно работает, пока я не получу привязку.Чтобы избежать путаницы, мы будем вызывать основное приложение приложения, модуль, который импортирует виджет из lib, а виджет, который импортируется в приложение, будет называться cwid.
По сути, мне нужно как-то ссылаться на функцию в приложении, чтобы она могла быть связана с моим виджетом в lib.
Функция, с которой я пытаюсь связать виджет в cwid, это element_click (функция element_click находится в приложении.):
lambda event: element_click(event, elementinfo[3])
Таким образом, привязка будет выглядеть примерно так в lib(элемент является виджетом Canvas внутри cwid)
element.bind('<ButtonRelease-1>', lambda event: element_click(event, elementinfo[3]))
Вышеприведенная строка не будет работать, однако, видя, что element_click находится в приложении.Так что я попробовал обходную работу, которая, кажется, не работает.
import app
loc = app.EOG
element.bind('<ButtonRelease-1>', lambda event: loc.element_click( event, elementinfo[3]))
Когда я пробую вышеописанное, я получаю следующую ошибку:
TypeError: unbound method element_click() must be called with EOG instance as first argument (got Event instance instead)
EOG - это класс в приложении, который содержит element_click.
Кроме того, все приведенные выше фрагменты кода являются фрагментами.
РЕДАКТИРОВАТЬ:
Попытка loc = app.EOG () и перейти к следующей ошибке:
AttributeError: EOG instance has no attribute '__nonzero__'