Hi guys, I posted the following on clp but didn't get much response, so I'm
now trying it here;) Anyway, I want to have a window that can send and
receive filenames per drag & drop. The problem is: given code below I can
- send files to Explorer
- get files from Explorer
but not copy files from e.g. one instance of the app to another instance (or
from one window of given class in a MDIFrame to another). Here is the code,
stripped down to the basics:
import wx
class MyFileDropTarget(wx.FileDropTarget):
def __init__(self, parent):
wx.FileDropTarget.__init__(self)
self.parent = parent
def OnDropFiles(self, x, y, files):
for file in files:
self.parent.c.InsertStringItem(0, file)
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "test")
size = self.GetClientSize()
self.c = wx.ListCtrl(self, 1860,
style=wx.LC_REPORT|wx.SUNKEN_BORDER,
size=size, pos=(0,0))
self.c.InsertColumn(0, "Filename",
width = size[0])
wx.EVT_MOTION(self.c, self.onStartDrag)
self.SetDropTarget(MyFileDropTarget(self))
def onStartDrag(self, evt):
if evt.Dragging():
data = wx.FileDataObject()
data.AddFile("C:\\some.exe")
dropSource = wx.DropSource(self)
dropSource.SetData(data)
dropSource.DoDragDrop(0)
evt.Skip()
class TestApp(wx.App):
def OnInit(self):
frame = TestFrame()
frame.Show(True)
return True
if __name__ == '__main__':
TestApp(0).MainLoop()
My Version is wxPython 2.4.1.2 + Python 2.3. Any help appreciated.