- # coding=UTF-8
- import wx;
- from com.download import download;
- import os;
- class Downloadfile(wx.Frame):
- def __init__(self):
- #save file url;
- self.saveURL = ""
- wx.Frame.__init__(self,None,-1,"download",size=(400,150));
- panel = wx.Panel(self,-1);
- self.topLabel = wx.StaticText(panel,-1,"1,enter url 2, click save 3, start down")
- self.topLabel.SetFont(wx.Font(18,wx.SWISS,wx.NORMAL,wx.BOLD))
- self.label1 = wx.StaticText(panel,-1," url: ");
- self.label1.SetFont(wx.Font(14,wx.SWISS,wx.NORMAL,wx.BOLD))
- self.input1 = wx.TextCtrl(panel,-1);
- #self.input1.SetInsertionPoint(0);
- self.input1.Value = "<a href="http://archive.ibobar.com/files/huana/audio/elva/elva05.mp3">http://archive.ibobar.com/files/huana/audio/elva/elva05.mp3"
- self.saveBtn = wx.Button(panel,-1,"save");
- self.Bind(wx.EVT_BUTTON,self.save,self.saveBtn)
- self.button = wx.Button(panel,-1,"down");
- self.Bind(wx.EVT_BUTTON,self.startDown,self.button);
- self.gauge = wx.Gauge(panel,-1,100,(20,90),(350,25));
- self.gauge.SetBezelFace(3);
- self.gauge.SetShadowWidth(3);
- self.gaugeLB = wx.StaticText(panel,-1,"0%");
- self.gaugeLB.SetFont(wx.Font(14,wx.SWISS,wx.NORMAL,wx.BOLD))
- self.multText = wx.TextCtrl(panel,-1,"",size=(400,100),style=wx.TE_MULTILINE)
- #Add(window, proportion=0, flag=0, border=0, userData=None)
- mainSize = wx.BoxSizer(wx.VERTICAL);
- mainSize.Add(wx.StaticLine(panel),0,wx.EXPAND);
- mainSize.Add(self.topLabel);
- mainSize.Add(wx.StaticLine(panel),0,wx.EXPAND);
- urlSizer = wx.FlexGridSizer(cols=2,hgap=5,vgap=5);
- urlSizer.AddGrowableCol(1);
- urlSizer.Add(self.label1,0,wx.Left);
- urlSizer.Add(self.input1,0,wx.EXPAND);
- btnSizer = wx.BoxSizer(wx.HORIZONTAL)
- btnSizer.Add((20,20), 1)
- btnSizer.Add(self.saveBtn)
- btnSizer.Add((20,20), 1)
- btnSizer.Add(self.button)
- btnSizer.Add((20,20), 1)
- progressSizer = wx.BoxSizer(wx.HORIZONTAL);
- progressSizer.Add(self.gauge);
- progressSizer.Add((20,20), 0)
- progressSizer.Add(self.gaugeLB);
- textSizer = wx.FlexGridSizer(cols=2,hgap=5,vgap=5);
- textSizer.AddGrowableCol(0);
- textSizer.Add(self.multText,0,wx.EXPAND);
- mainSize.Add(urlSizer,0,wx.EXPAND|wx.ALL,10);
- mainSize.Add(btnSizer,0,wx.EXPAND|wx.ALL,10);
- mainSize.Add(progressSizer,0,wx.EXPAND|wx.ALL,10);
- mainSize.Add(textSizer,0,wx.EXPAND|wx.ALL,10);
- panel.SetSizer(mainSize);
- mainSize.Fit(self);
- mainSize.SetSizeHints(self);
- self.addLog("---------please select save file-------");
- def addLog(self,t):
- self.multText.AppendText(t+'\\n');
- def startDown(self,event):
- self.addLog("---start download file");
- down = download(self.input1.Value,self.saveURL,self.changeProgress,self.downComplete)
- def getNameFromURL(self,url = ""):
- ls = str(url).split("/");
- return ls[len(ls)-1];
- def save(self,event):
- self.addLog("---start select save file");
- woldcard= "All files(*.*)|*.*";
- dialog = wx.FileDialog( None , "save file" , os.getcwd() , self.getNameFromURL(self.input1.Value) , woldcard , wx.SAVE);
- if dialog.ShowModal() == wx.ID_OK:
- self.saveURL = dialog.GetPath();
- self.addLog("---selected file: " + self.saveURL )
- dialog.Destroy();
- def changeProgress(self,n=0):
- self.gauge.SetValue(n);
- self.gaugeLB.SetLabel( str(n)+'%')
- def downComplete(self,event):
- self.addLog("---------down complete ! ---------");
- dlg = wx.MessageDialog(None,"download complete! " , "complete" , style = wx.OK)
- code = dlg.ShowModal();
- dlg.Destroy();
- if __name__ == "__main__":
- app = wx.PySimpleApp();
- frame = Downloadfile();
- frame.Show();
- app.MainLoop();
- #该片段来自于http://www.codesnippet.cn/detail/07122012866.html
来源: http://www.codesnippet.cn/detail/07122012866.html