В настоящее время я пишу приложение с помощью wxPython (wxWidgets for Python).
В этом Приложение отображает список разговоров с кнопкой «Открыть разговор» в конце каждой строки. Назовем это окно «Все разговоры».
Нажатие на любую из кнопок вызывает функцию «open_conversation(self, event)», которая отображает весь разговор.
Что я хочу сделать, так это при создании окна «Все разговоры» передать некоторые пользовательские данные в каждое событие «Bind» или в каждый объект «wxButton», например как строка (например, имя контакта); впоследствии, когда кнопка нажата, она передает указанные данные в аргументе «событие», становясь доступной в функции с чем-то вроде contact = event.CustomData["recipient"].
Проблема
Обратившись к документации, я нашел ключевое слово «userData» для метода «Bind», но похоже, что это не так. не работает в Python.
Код: Выделить всё
self.openConversation_button.Bind(wx.EVT_BUTTON, self.open_conversation, userData="test")
TypeError: _EvtHandler_Bind() got an unexpected keyword argument 'userData'
Я отметил решение Рольфа Саксонского как правильное, потому что оно лучше всего соответствует моим потребностям, однако я бы посоветовал в целом использовать систему настраиваемых событий, предложенную VZ.
Подробнее здесь: https://stackoverflow.com/questions/618 ... -wxwidgets