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

有帮助吗?

解决方案

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

其他提示

无法看到拖拽的数据 OnEnterOnDragOver 方法。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top