0

我想知道是否可以在从 FloatCanvas 触发的 EVT_FC_LEFT_UP 事件中获取键盘修饰符的状态。

我宁愿自己不为 keyUp 和 keyDown 编写回调。我找不到比让类成员跟踪整个窗口中的修饰符状态更好的方法来获取控件状态。

是否可以在 EVT_FC_LEFT_UP 回调中获取控制键的状态?

4

1 回答 1

0

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)我怀疑你会想要这一切都在一个班级而不是全局

于 2013-06-20T18:56:55.477 回答