wxpython:如何在OnDragOver中检查拖动的数据?
我对wxPython中的拖放功能有点困惑(不过这个问题可能也适用于其他图形界面框架)。这个框架提供了一些回调函数(比如OnEnter和OnDragOver),听说可以让我告诉系统当前鼠标的位置是否适合放置正在拖动的东西。通过这些方法,我可以返回一些状态,比如wx.DragNone、wx.DragCopy等等。让我感到困惑的是,在这些方法里我不能调用GetData,这意味着我无法查看用户正在拖动的数据。如果我看不到数据,怎么知道用户是否可以在这里放下呢?
2 个回答
1
在OnEnter
和OnDragOver
这两个方法里,无法直接看到被拖动的数据。
我找到的唯一解决办法是把被拖动的项目存储在一个实例变量里,这样在这两个方法中就可以读取到它了。
1
有一种解决办法,虽然不太好用,但可以试试。就是在开始拖动的时候,把拖动的数据存储在一个全局或静态的地方。这样,在处理 OnEnter 和 OnDragOver 这些事件时,就可以获取到正在拖动的数据。不过,这种方法只适用于同一个应用程序内部的拖动,也就是说,只能在同一个应用的实例中使用。