在wxpython中使用修改器进行拖放

时间:2011-01-28 19:48:33

标签: drag-and-drop wxpython

有没有办法在wxpython的拖放过程中捕获修饰符?在几篇文章中提到它作为旁注(The OLE way of doing drag&drop in wxPythonwx.TreeCtrl drag and drop, copy and move),但这些都没有提及如何捕捉这些修饰语。

我知道CmdDown(),但这需要一个EVT_CHAR。有没有办法在拖放(到画布)期间强制EVT_CHAR?

在一天结束时,我可以使用一些全局钩子,但我知道在类似的包中有等价物允许你捕捉修饰符。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

对我有用的是使用GetMouseState(),其中包含用于修饰符的布尔值。我一直在尝试使用GetKeyState(),但我需要传入一个密钥代码。回想起来,我想我可以传入任何键,然后只检查修饰符,因为那是我真正想要的。无论如何 - 它现在有效。

def OnDropFiles(self, x, y, filenames):
    mouse = wx.GetMouseState()
    if mouse.CmdDown():
        self.frame.paths += filenames
    else:
        self.frame.paths = filenames
    self.frame.draw_figure()