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

===============>>#1 票数:1

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

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

===============>>#2 票数:1 已采纳

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

  ask by Landon Kuhn translate from so

未解决问题?本站智能推荐:

1回复

wxPython:将文件拖到窗口中以获取文件路径

我想将文件拖到窗口中并获取文件路径。 我试过这样做: 然后在主窗口中: 但这没有任何作用。 我已经尝试过运行这个教程代码,但它也没有做任何事情。 我该如何做到这一点?
2回复

如何使用wxpython的DataViewCtrl拖放

我想将拖放与wx.dataview.DataViewCtrl结合使用,因此我开始尝试使用拖放对行进行重新排序。 我找不到在wxpython中如何正确执行此操作的任何示例,但是无论如何,我设法使其部分工作(请参见下文)。 不幸的是, event.GetDataObject()在我的on_d
1回复

我可以处理拖动和外部文件到框架上的事件是什么?

我有代码将文件拖放到框架内的wx.FileDropTarget上。 那不是我的问题。 我正在尝试创建一个自定义的“悬停”事件,该事件在外部拖动的文件在我的框架上之后被调用1秒。 不幸的是,当外部文件从外部拖到框架上时,不会调用wx.EVT_ENTER_WINDOW。 我想避免不断
1回复

wxpython拖放:仅当光标在目标listctrl对象内时才拖放

我正在尝试使用wxpython创建一个小型应用程序,用户可以在其中将一些文本从listctrl对象(源)中拖放到另一个listctrl对象(目标)中。 我想以这样的方式编写此应用程序: 仅当光标位于目标listctrl区域中时 ,才将文本字符串放入目标listctrl对象中。 我的代码(
2回复

wxPython中的振动窗口

我将如何在wxPython中振动窗口。 我想要某种方式指定执行操作的时间以及距离和类似内容。 是否有我没有注意到的内置函数,或者我必须自己编写该函数? (我正在考虑将窗口横向移动几次,但我希望有一个内置的功能,该功能可能会更快。)
3回复

遍历wxPython中的控件以保存会话数据

我有一个用wxPython编写的GUI(带有boa构造函数)。 我想将用户会话保存到文件中,以在下次应用程序启动时加载。 我想避免通过迭代控件并将它们的值保存到字典来“手工”保存每个值。 有没有办法掌握应用程序中使用的所有wxID及其对应的小部件?
1回复

在wxPython中自动安排面板

级别:初学者 我正在Windows OS上使用wxPython开发GUI。 我在安排面板时遇到一些问题。 I GUI看起来像下面的图像(当然,图像中省略了菜单栏和标题栏)。 我将花一些时间来解释如何创建此GUI。 首先,我使用wx.DisplaySize()获得屏幕尺寸。
2回复

源对象如何在下降时刻接收对象的反馈信息(数据源)?

我有一个窗口-EditWindow(类的对象,它是继承wx.Frame),其中包含Grid对象(self.grid)。 在此类中,我编写此方法: 并将其绑定到EditWindow的__init__中: 在另一个窗口“ VariableWindow”中,我得到了另一个网格“ Va
1回复

2行中的wxpython图像

我的代码有什么问题? 我想要两行图像,但是不起作用。 我找不到错误 我认为问题出在Resize函数或Sizer中,但我无法解决,是否可以用wxpython创建图库,还是应该为此找到另一个gui?
1回复

无法销毁wxpython中的wx.Dialog

如图所示使用subprocess.Popen()启动一个进程后,我想创建一个带有“中止”按钮的繁忙窗口(wx.Dialog)。 这按预期工作; 但是,如果给了该过程所需的时间,则应该销毁繁忙的窗口。 在下面显示的代码中,这不会发生吗? 我一直在尝试使用EndModal和wx.Dia