我正在尝试使用 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()