Генерируйте пользовательский CommandEvent в wxPython

Краткий ответ: уберите eqn:E1 в вызове на induction l1.

Эта директива просит, чтобы тактика induction добавила равенство в утверждение, которое должно быть доказано по индукции. Но если вы добавите такое равенство, то оно появится в утверждении, которое будет доказано индукцией, и это испортит доказательство индукции.

5
задан Vebjorn Ljosa 12 March 2009 в 19:24
поделиться

1 ответ

Для распространения событие должно быть wx. CommandEvent. (См. wxWidgets обзор обработки событий для получения дополнительной информации о распространении.) Строго говоря, это должен быть wx. PyCommandEvent, который осведомлен о Python и может транспортировать его биты Python безопасно через wxWidgets систему событий и иметь их все еще быть там, когда обработчик событий вызывается.

Определите свой пользовательский тип события следующим образом:

EVT_QUANTITY_CHANGED = wx.PyEventBinder(wx.NewEventType(), 1)

Вы, вероятно, хотите сделать это на уровне модуля, хотя это май при некоторых обстоятельствах быть желательными выполнить в этом __init__ метод Вашего управления.

Управление может теперь генерировать событие следующим образом:

event = wx.PyCommandEvent(EVT_QUANTITY_CHANGED.typeId, self.GetId())
self.GetEventHandler().ProcessEvent(event)

Окно верхнего уровня может связать и обработать событие обычным способом:

self.Bind(mycontrol.EVT_QUANTITY_CHANGED, self.OnQuantityChanged)
11
ответ дан 18 December 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: