ドラッグ アンド ドロップを学ぼうと wxPython を試しています。以下が Linux で機能しないのはなぜですか? アプリは起動しますが、静的テキストをテキスト フィールドにドラッグすると、python 2.7 を使用してバージョン 2.8 で 139 終了コードが返されます。
import wx
class DropTarget(wx.DropTarget):
def __init__(self):
wx.DropTarget.__init__(self)
self.dataobject = wx.PyTextDataObject()
self.SetDataObject(self.dataobject)
def OnData(self, x, y, d):
pass
class Txt(wx.StaticText):
def __init__(self, parent, label_):
wx.StaticText.__init__(self, parent, label=label_)
self.Bind(wx.EVT_LEFT_DOWN, self.handle)
def handle(self, event):
ds = wx.DropSource(self)
d = wx.PyTextDataObject('some text')
ds.SetData(d)
ds.DoDragDrop(True)
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'whatevs')
main_panel = wx.Panel(self)
txt = Txt(main_panel, 'ONE')
txt2 = wx.TextCtrl(main_panel)
s = wx.BoxSizer(wx.VERTICAL)
s.Add(txt)
s.Add(txt2)
main_panel.SetSizer(s)
dt = DropTarget()
txt2.SetDropTarget(dt)
if __name__ == '__main__':
app = wx.App()
MyFrame().Show(True)
app.MainLoop()