Предупреждение об устаревании: требуется целое число (получил тип WindowIDRef).
Неявное преобразование в целые числа с использованием int устарело и может
быть удалено в будущей версии Python.
Хорошо, давайте вместо этого будем использовать wx.NewIdRef().GetId(). то есть:
Код: Выделить всё
my_id = wx.NewIdRef().GetId()
target.Bind(wx.EVT_MENU, self.foo, id=my_id)
wx._core.wxAssertionError: утверждение C++ "gs_autoIdsRefCount[winid] ! =
ID_FREE" не удалось выполнить в ....\src\common\windowid.cpp(110) в
`anonymous-namespace'::IncIdRefCount(): идентификатор должен быть сначала зарезервирован
Хорошо, тогда похоже, что передача wx.NewIdRef запускает неявное преобразование __int__(), что, если я сделаю это: my_id = wx .NewIdRef().__int__()?
Та же ошибка. Есть ли в wx.NewIdRef функция для резервирования вручную? Нет.
Так в чем же дело? Как мне правильно использовать wx.NewIdRef()? И могу ли я вместо этого использовать wx.Window.NewControlId()?
Подробнее здесь: https://stackoverflow.com/questions/787 ... -correctly