wxPython – 拖放
对用户来说, 拖放 功能是非常直观的。在许多桌面应用程序中,用户只需用鼠标拖动对象并将其放到另一个窗口中,就可以将其从一个窗口复制或移动到另一个窗口。
拖放操作包括以下步骤
- 声明一个拖放目标
- 创建数据对象
- 创建wx.DropSource
- 执行拖动操作
- 取消或接受拖放
在wxPython中,有两个预定义的下降目标 −
- wx.TextDropTarget
- wx.FileDropTarget
许多wxPython部件支持拖放活动。源控件必须启用了拖放功能,而目标控件必须处于接受(或拒绝)拖放的位置。
用户正在拖动的源数据被放置在目标对象上。目标对象的OnDropText()会消耗这些数据。如果需要,可以删除源对象的数据。
例子
在下面的例子中,两个ListCrl对象被水平放置在Box Sizer中。左边的List被填充了一个language[]数据。它被指定为拖动的源。右边的一个是目标。
第二个列表控件是空的,是TextDropTarget类对象的一个参数。
OnDropText()方法在目标列表控件中添加源数据。
拖动操作是由事件绑定器初始化的。
OnDragInit()函数将拖动数据放在目标上,并从源头删除。
完整的代码如下-
上述代码产生了以下输出 —