wxpython:如何检查OnDragOver中的拖动数据?

时间:2020-03-05 18:42:57  来源:igfitidea点击:

wxPython的拖放让我有些困惑(但也许这个问题也与其他GUI框架的拖放有关)。框架提供了几个回调(OnEnter和OnDragOver),据称它们使我可以通知系统当前鼠标位置是否是放置拖放对象的有效位置。从这些方法中,我可以返回wx.DragNone,wx.DragCopy等。令我感到困惑的是,从这些方法中,我无法调用GetData,这意味着我无法检查用户正在拖动的数据。如果我看不到数据,我应该如何知道用户放到这里是否可以?

解决方案

回答

一种解决方案(用途有限)是当启动拖动操作时,将拖动的数据存储在某个位置的全局或者静态引用中。这样,在OnEnter和OnDragOver处理程序中,可以获取对要拖动的数据的引用。当然,这仅对同一应用程序(实际上是该应用程序的同一实例)内的拖动有用。

回答

在OnEnter和OnDragOver方法中无法查看拖动的数据。

我发现的唯一解决方案是将拖动的项目存储在某个实例变量中,然后在这些方法中可读。