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

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

我有一个窗口-EditWindow(类的对象,它是inherit wx.Frame),它包含网格对象(self.Grid)。 在本课程中,我编写了以下方法:

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所指出的,只有当您在应用程序中拖拽某物时,此解决方案才会起作用,这就是我想你说的你想做的。如果您在应用程序外部拖动,那么我知道没有办法这样做。