Python 源对象如何在下降时刻接收对象的反馈信息(数据源)?
我有一个窗口-EditWindow(类的对象,它是inherit wx.Frame),它包含网格对象(self.Grid)。 在本课程中,我编写了以下方法:Python 源对象如何在下降时刻接收对象的反馈信息(数据源)?,python,drag-and-drop,wxpython,wxwidgets,Python,Drag And Drop,Wxpython,Wxwidgets,我有一个窗口-EditWindow(类的对象,它是inherit wx.Frame),它包含网格对象(self.Grid)。 在本课程中,我编写了以下方法: def OnSubindexGridCellLeftClick( self, event ): .... dragSource = MyDropSource( self.grid ) dragSource.SetData( data ) dragSource.DoDragDro
def OnSubindexGridCellLeftClick( self, event ):
....
dragSource = MyDropSource( self.grid )
dragSource.SetData( data )
dragSource.DoDragDrop()
event.Skip()
并将其绑定到EditWindow的\uuuuu init\uuuu
:
self.grid.Bind( wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnSubindexGridCellLeftClick )
在另一个窗口-“VariableWindow”中,我得到了另一个网格-“VariablesGrid”,我确定了以下类:
class VariableDropTarget(wx.TextDropTarget):
def __init__(self, parent):
wx.TextDropTarget.__init__(self)
self.ParentWindow = parent
def OnDropText(self, x, y, data):
x, y = self.ParentWindow.VariablesGrid.CalcUnscrolledPosition(x, y)
....
在另一个窗口中,我设置了放置目标:
self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
当我从网格(位于EditorWindow中)中放置光标时,如何钩住对象的一些信息——“VariablesGrid”。我想在VariablesGrid中获取数据信息,以及EditWindow如何接收这些信息?
对不起,我的英语不好。您可以使用pubsub将数据发送到编辑器窗口,然后显示它。仅在OnDropText方法中执行发送,以便仅在拖动结束时实际拖放时发送。这里有一个关于pubsub的简单教程,可以让您继续学习:让我们看看我是否理解这个问题 您有一个“拖放”源窗口和一个“拖放”目标窗口。当用户执行拖放操作时,您希望将一些信息从目标窗口传递到源窗口 对吗 一般来说,这是不可能做到的。正如名称所示,信息流是从源到目的地的 但是,如果源和目标在同一个正在运行的应用程序中,您可以通过让目标在源中调用一个方法来“伪造”它,当删除完成时,将所需信息从目标传递到源
如果您这样做,您应该确保只有一个应用程序实例可以运行,否则,如果用户在应用程序的两个副本之间拖拽,就会导致混乱。正如RavenPoint所指出的,只有当您在应用程序中拖拽某物时,此解决方案才会起作用,这就是我想你说的你想做的。如果您在应用程序外部拖动,那么我知道没有办法这样做。