我有一个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如何接收这些信息? 对不起,我英语不好。你知道吗
您可以使用pubsub将数据发送到EditorWindow,然后显示它。在OnDropText方法中执行发送操作,使其仅在拖动结束时实际拖放时发送。下面是一个关于pubsub的简单教程:http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/
让我们看看我是否理解这个问题。你知道吗
您有一个“拖放”源窗口和一个“拖放”目标窗口。当用户执行拖放操作时,您希望将一些信息从目标窗口传递到源窗口。你知道吗
对吗?你知道吗
一般来说,这是做不到的。正如名字所暗示的,信息流是从源到目的地的。你知道吗
但是,如果源和目标位于同一个正在运行的应用程序中,则可以通过让目标调用源中的方法,在删除完成时将所需信息从目标传递给源来“伪造”它。你知道吗
如果这样做,您应该确保只有一个应用程序实例可以运行,否则如果用户在应用程序的两个副本之间拖拽,就会导致混乱。你知道吗
相关问题 更多 >
编程相关推荐