我对wxPython中的拖放感到有些困惑(但也许这些问题也适用于其他GUI框架中的拖放)。框架提供了几个回调(OnEnter和OnDragOver),据称这些回调允许我通知系统当前鼠标位置是否是一个有效的位置,可以删除被拖动的任何内容。从这些方法我可以返回wx.DragNone,wx.DragCopy等。令我感到困惑的是,从这些方法中我不允许调用GetData,这意味着我不允许检查用户拖动的数据。如果我看不到数据,我怎么知道用户是否可以放在这里?
答案 0 :(得分:1)
一种解决方案,即有用性有限的黑客攻击,是在启动拖动时,将拖动的数据存储在某个地方的全局或静态引用中。这样,在OnEnter和OnDragOver处理程序中,可以获得对被拖动数据的引用。这当然仅对同一应用程序中的拖动有用(实际上是相同的应用程序实例)。
答案 1 :(得分:1)
无法在OnEnter
和OnDragOver
方法中查看拖动的数据。
我找到的唯一解决方案是将拖动的项目存储在某些实例变量中,然后在这些方法中可读。