使用wxPython的FloatCanvas小部件,是否有方法获取事件的ControlDown信息?

2024-04-26 01:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我宁愿不写keyUp和keyDown的回调。我看不出比让类成员在整个窗口中跟踪修饰符状态更好的方法了。在

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


Tags: 方法函数状态事件成员键盘修饰符left
1条回答
网友
1楼 · 发布于 2024-04-26 01:35:11

wxPython(afaik)中没有isKeyDown类型的方法

我能看到你得到这个的唯一方法是

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

然后检查wx.EVT_LEFT_UP事件处理程序中的control_pressed

同样在现实生活中(tm),我想你会希望这一切在一个类而不是全局

相关问题 更多 >