Я видел много информации по этой теме, но точно не ответил на этот вопрос. У меня проблема противоположная большинству. Я хочу, чтобы кнопка «Ввод» не нажимала кнопку, когда кнопка имеет фокус. И для этого я не хочу просто отключить кнопку от принятия нажатия кнопки Enter, а скорее хочу условно зафиксировать нажатие кнопки Enter в методе обратного вызова. Прямо сейчас я привязал следующее событие ко всем виджетам в моей программе на Python:
parent.Bind(wx.EVT_CHAR, self.CharInputCallback)
Событие EVT_CHAR фактически вызывается при нажатии кнопки ввода, и я могу получить обратный вызов в своем методе обратного вызова. Моя проблема заключается в том, что функциональность кнопки ввода, состоящая в виртуальном нажатии кнопки, по-прежнему выполняется, несмотря на то, что намеренно не пропускается событие (которое будет пересылаться по событию). Поскольку это происходит, и я уверен, что мой метод обратного вызова не перенаправляет событие (я проверял это, перехватывая символы, идущие в текстовое поле), я подозреваю, что кнопка ввода вызывает дополнительное событие, которое я не фиксирую . Я попытался связать и зафиксировать дополнительные следующие события, чтобы предотвратить «виртуальный щелчок» от кнопки ввода:
parent.Bind(wx.EVT_TEXT_ENTER, self.CharInputCallback)
parent.Bind(wx.EVT_KEY_UP, self.CharInputCallback)
parent.Bind(wx.EVT_KEY_DOWN, self.CharInputCallback)
Тем не менее, когда я нажимаю ввод, кнопка в фокусе все еще нажимается. Подводя итог, возникает ли дополнительное событие, когда я нажимаю кнопку ввода? Если да, то какое событие, в частности, «фактически щелкает» по кнопке? На большинстве форумов, которые я нашел, обсуждалось, как распознать нажатие кнопки ввода, но я хочу распознать ее и отключить действие по умолчанию, когда кнопка находится в фокусе.