我正在使用wxPython。我有一個wx.Dialog
與一堆按鈕,也是wx.TextCtrl
。每個按鈕都有一個wx.Button
,並通過wx.EVT_BUTTON
與它綁定。我按了幾個按鈕,他們做了他們的事情。然後我想打空間吧。有趣的是,我有一個標籤爲SPC的按鈕,它與空格鍵行爲相對應,作爲一個額外的便利。我想會出現以下情況:有沒有辦法覆蓋Windows上的wxPython中的空格鍵行爲?
- 你按下空格鍵按鈕,它識別出空格鍵事件(作品)
你按下鍵盤上的空格鍵,並識別出空格鍵事件
a。您推動鍵盤上的空格鍵,重點在
wx.TextCtrl
...(作品)b。你推一個
wx.Button
的鍵盤焦點上的空格鍵,因爲這 是你最後處理的事件和空格鍵事件被識別(問題)
我做:
self.typingWindow.Bind(wx.EVT_KEY_DOWN, self.popup)
self.Bind(wx.EVT_KEY_DOWN, self.popup)
第一行允許案例2a工作
第二行沒有效果,但我認爲它應該?我看到了this old link,它解決了完全相同的問題,並且似乎表示,像我的第二條代碼行這樣的事情將允許案例2b工作。無論如何,在情況2b中發生的事情是爲最後按下的按鈕生成命令事件。這應該是Windows的默認行爲。
所以我的問題是我的情況2b可以工作嗎?也就是說,即使焦點當前位於按下的最後一個按鈕上,我是否可以生成按下按鍵事件,而不是按下最後一個按鈕時的命令事件。
我想EVT_CHAR_HOOK正是我所希望的,謝謝。無論出於何種原因,我直覺地希望'進入'是那個按鈕來激活當前聚焦的按鈕,不知道我從哪裏得到的?我會考慮我的選擇。 – demongolem