- 论坛徽章:
- 0
|
本帖最后由 avyou 于 2013-08-28 21:02 编辑
已搞定,
- import wx,os
- class FileDrop(wx.FileDropTarget):
- def __init__(self,window,frame):
- wx.FileDropTarget.__init__(self)
- self.window = window
- self.frame = frame
- def OnDropFiles(self, x, y, filenames):
- for name in filenames:
- try:
- f = open(name, 'r')
- text = f.read()
- self.window.WriteText(text)
- self.frame.SetTitle(os.path.basename(name))
- f.close()
- except IOError, error:
- dlg = wx.MessageDialog(None, 'Error opening file\n' + str(error))
- dlg.ShowModal()
- except UnicodeDecodeError, error:
- dlg = wx.MessageDialog(None, 'Cannot open non ascii files\n' + str(error))
- dlg.ShowModal()
-
- class DropFile(wx.Frame):
- def __init__(self, parent, id):
- wx.Frame.__init__(self, parent, id, title="", size = (450, 400))
- self.text = wx.TextCtrl(self, -1, style = wx.TE_MULTILINE|wx.TE_RICH2)
- dt = FileDrop(self.text,self)
- self.text.SetDropTarget(dt)
- self.Centre()
- self.Show(True)
- app = wx.App()
- DropFile(None, -1)
- app.MainLoop()
复制代码 |
|