Как передать пользовательские данные в событие wxWidgetsPython

Программы на Python
Anonymous
Как передать пользовательские данные в событие wxWidgets

Сообщение Anonymous »

Ситуация

В настоящее время я пишу приложение с помощью 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

Вернуться в «Python»