Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxpython:如何在OnDragOver中检查拖动的数据?_Python_User Interface_Drag And Drop_Wxpython_Wxwidgets - Fatal编程技术网

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

wxpython:如何在OnDragOver中检查拖动的数据?,python,user-interface,drag-and-drop,wxpython,wxwidgets,Python,User Interface,Drag And Drop,Wxpython,Wxwidgets,我对wxPython中的拖放操作有点困惑(但这个问题可能也与其他GUI框架中的拖放操作有关)。这些框架提供了两个回调(OnEnter和OnDragOver),据称它们允许我通知系统当前鼠标位置是否是放置正在拖动的任何东西的有效位置。从这些方法中,我可以返回wx.DragNone、wx.DragCopy等。让我困惑的是,在这些方法中,我不允许调用GetData,这意味着我不允许检查用户正在拖动的数据。如果我看不到数据,我怎么知道用户放在这里是否合适?一个解决方案是,当开始拖动时,将拖动的数据存储在

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

一个解决方案是,当开始拖动时,将拖动的数据存储在全局或静态引用中。这样,在OneNet和OnDragOver处理程序中,就可以获得对正在拖动的数据的引用。当然,这仅适用于同一应用程序(实际上是同一应用程序实例)中的拖动。

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


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

您能对此进行一点扩展吗。我正计划使用Wx进行一个有趣的项目。使用x/y返回进行拖动是我一直指望的事情。哦,你可以看到数据被放入的位置,你只是看不到拖动时正在拖动什么(在用户松开鼠标按钮之前),这有时很有用(例如,如果你想根据拖动的内容更改鼠标指针)。