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

2024-04-19 02:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个window-EditWindow(类的对象,它是inherit)wx.框架),其中包含网格对象(自网格). 在这节课上,我写了这样一个方法:

def OnSubindexGridCellLeftClick( self, event ):
        ....
        dragSource = MyDropSource( self.grid )
        dragSource.SetData( data )
        dragSource.DoDragDrop()
        event.Skip()

并将其绑定到EditWindow的__init__

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如何接收这些信息? 对不起,我英语不好。你知道吗


Tags: 对象selfevent信息网格datainitdef
2条回答

您可以使用pubsub将数据发送到EditorWindow,然后显示它。在OnDropText方法中执行发送操作,使其仅在拖动结束时实际拖放时发送。下面是一个关于pubsub的简单教程:http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/

让我们看看我是否理解这个问题。你知道吗

您有一个“拖放”源窗口和一个“拖放”目标窗口。当用户执行拖放操作时,您希望将一些信息从目标窗口传递到源窗口。你知道吗

对吗?你知道吗

一般来说,这是做不到的。正如名字所暗示的,信息流是从源到目的地的。你知道吗

但是,如果源和目标位于同一个正在运行的应用程序中,则可以通过让目标调用源中的方法,在删除完成时将所需信息从目标传递给源来“伪造”它。你知道吗

如果这样做,您应该确保只有一个应用程序实例可以运行,否则如果用户在应用程序的两个副本之间拖拽,就会导致混乱。你知道吗

相关问题 更多 >