Welcome folks today in this blog post we will be doing drag and drop files and printing full path
in gui desktop app in python. All the full source code of the application is given below.
Get Started
In order to get started you need to install the below library using the pip
command as shown below
pip install wxpython
After installing this library you need to make an app.py
file and copy paste the following code
app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import wx class MyFileDropTarget(wx.FileDropTarget): def __init__(self, window): wx.FileDropTarget.__init__(self) self.window = window def OnDropFiles(self, x, y, filenames): self.window.AppendText("\n%d file(s) dropped at (%d,%d):\n" % (len(filenames), x, y)) for file in filenames: self.window.AppendText("\t%s\n" % file) class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Drop Target", size=(500,300)) p = wx.Panel(self) # create the controls label = wx.StaticText(p, -1, "Drop some files here:") text = wx.TextCtrl(p, -1, "", style=wx.TE_MULTILINE|wx.HSCROLL) # setup the layout with sizers sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(label, 0, wx.ALL, 5) sizer.Add(text, 1, wx.EXPAND|wx.ALL, 5) p.SetSizer(sizer) # make the text control be a drop target dt = MyFileDropTarget(text) text.SetDropTarget(dt) app = wx.PySimpleApp() frm = MyFrame() frm.Show() app.MainLoop() |
If you execute the above python script
by typing the below command
python app.py