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

时间:2008-08-25 19:43:16

标签: python user-interface drag-and-drop wxpython wxwidgets

我对wxPython中的拖放感到有些困惑(但也许这些问题也适用于其他GUI框架中的拖放)。框架提供了几个回调(OnEnter和OnDragOver),据称这些回调允许我通知系统当前鼠标位置是否是一个有效的位置,可以删除被拖动的任何内容。从这些方法我可以返回wx.DragNone,wx.DragCopy等。令我感到困惑的是,从这些方法中我不允许调用GetData,这意味着我不允许检查用户拖动的数据。如果我看不到数据,我怎么知道用户是否可以放在这里?

2 个答案:

答案 0 :(得分:1)

一种解决方案,即有用性有限的黑客攻击,是在启动拖动时,将拖动的数据存储在某个地方的全局或静态引用中。这样,在OnEnter和OnDragOver处理程序中,可以获得对被拖动数据的引用。这当然仅对同一应用程序中的拖动有用(实际上是相同的应用程序实例)。

答案 1 :(得分:1)

无法在OnEnterOnDragOver方法中查看拖动的数据。

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