我想知道是否可以在从 FloatCanvas 触发的 EVT_FC_LEFT_UP 事件中获取键盘修饰符的状态。
我宁愿自己不为 keyUp 和 keyDown 编写回调。我找不到比让类成员跟踪整个窗口中的修饰符状态更好的方法来获取控件状态。
是否可以在 EVT_FC_LEFT_UP 回调中获取控制键的状态?
wxPython中没有isKeyDown
类型方法(afaik)
我能看到你得到这个的唯一方法是
control_pressed = False
.....
self.float_canvas.bind(wx.EVT_KEY_DOWN,OnKeyDown)
self.float_canvas.bind(wx.EVT_KEY_DOWN,OnKeyUp)
.....
def OnKeyDown(evt):
global control_pressed
if evt.GetKeyCode() == 117 #(or whatever the code for ctrl is)
control_pressed = True
def OnKeyUp(evt):
global control_pressed
if evt.GetKeyCode() == 117 #(or whatever the code for ctrl is)
control_pressed = False
然后签control_pressed
入您的wx.EVT_LEFT_UP
事件处理程序
也在现实生活中(tm)我怀疑你会想要这一切都在一个班级而不是全局