wx.DataObjectComposite の使い方
サンプルもないし大分悩んだので書いとく。
wx.URLDataObject が登録できないけど Firefox からは URL ドロップできる。というかテキストで送ってるだけだろう。
class DropTarget(wx.PyDropTarget): def __init__(self): self.data = wx.DataObjectComposite() dataobjs = ( wx.FileDataObject(), wx.TextDataObject(), #wx.URLDataObject(), ) self.dataobjs = {} for dataobj in dataobjs: self.dataobjs[dataobj.Format.Type] = dataobj self.data.Add(dataobj) super(DropTarget, self).__init__(self.data) def OnDragOver(self, x, y, d): return wx.DragCopy def OnData(self, x, y, d): if not self.GetData(): return wx.DragNone format = self.data.GetReceivedFormat() dataobj = self.dataobjs[format.Type] if format.Type == wx.DF_FILENAME: print dataobj.GetFilenames() elif format.Type == wx.DF_TEXT: print dataobj.GetText() return d