上一篇讲解完函数:def getdownLoadInfo (url):
传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面。大概思考一下图像化界面需要的内容:
(1)一个标签:显示为:“请输入公开课地址”
(2)一个文本框:用来输入地址
(3)一个按钮:点击用来提取视频信息
(4)一个标签和多行文本框,其中标签用来显示课程信息,多行文本用来显示下载链接
完成后的效果图如下:
我们先贴出代码:
#创建APP
app=wx.App(False)
#创建frame窗口
frame=wx.Frame(parent=None,title=u‘下载网易公开课v1.0‘,size=(800 ,600 ),style=wx.CAPTION|wx.CLOSE_BOX|wx.MINIMIZE_BOX)
frame.Center()
#创建Menu
menuBar=wx.MenuBar()
menu1=wx.Menu()
menuBar.Append(menu1,u"文件")
#创建工具栏
toolbar=frame.CreateToolBar()
#创建Panel
panel=wx.Panel(frame)
panel.SetBackgroundColour(‘white‘)
label=wx.StaticText(panel,label=u ‘请输入公开课地址:‘ )
font=wx.Font(13,wx.DECORATIVE,wx.NORMAL,wx.NORMAL)
label.SetFont(font)
text=wx.TextCtrl(panel,size=( 700,- 1))
button=wx.Button(panel,label=u ‘提取下载地址‘ )
button.SetFont(font)
frame.Bind(wx.EVT_BUTTON,showInfo,
button)
labelInfo=wx.StaticText(panel,size=(- 1, 50))
textArea=wx.TextCtrl(panel,style=wx.TE_MULTILINE,size=(700 ,300 ))
#用sizer控制界面
sizer=wx.FlexGridSizer(cols= 1,vgap= 10)
sizer.AddMany([label,text,button,labelInfo,textArea])
panel.SetSizer(sizer)
# #创建状态栏
statusBar=frame.CreateStatusBar()
frame.Show(True)
app.MainLoop()
实现图像化界面有很多扩展的库,这里我们使用的是wxpython,建议大家略读一下wxpython in
action,下面讲解一下各行代码的含义:
(1)首先调用wx.App,生成一个app对象,注意wxpython必须要有一个app对象
(2)生成一个Frame,一个Frame相当于一个窗口,也是wxpython必须的。
(3)添加所需要的标签(label),文本框(textCtrl)和按钮(Button)(这些控件都不能直接加在Frame上面,需要加在Panel上面,而Panel需要加在Frame上面)点击按钮触发showInfo方法,后面讲解
(4)通过sizer来控制布局,也类似于Java中的布局管理器,这里使用FlexGridSizer布局,定义为1列(cols=1)
下面讲解一下showInfo方法,先贴出代码:
def showInfo(event):
# url=r"http://v.163.com/special/opencourse/algorithms.html"
textArea.SetValue("")
url=text.GetValue()
courseTitle,courseCount,videoCount,videoUrl=getdownLoadInfo(url)
labelInfo.SetLabel(u‘课程名称:‘+courseTitle+ ‘\n‘+u ‘,课程总集数:‘ +unicode(courseCount)+‘\n‘+u‘,可下载集数:‘+unicode(videoCount))
for value in videoUrl:
textArea.AppendText(value+ ‘\n‘)
功能很简单,点击按钮,将地址文本框的内容传入getdownLoadInfo(url)中获取课程信息,然后将信息显示在label和文本框中。
至此,一个小的程序讲完了,如果电脑上安装有python2.7,那么可以直接运行,由于是练习用,界面做的很粗糙,功能也比较简单,对一些异常也没有进行判断,权当简单的练下手,以后遇到类似的问题,可以很快的解决。
下一篇讲解一下如何生成exe文件,这样在windows环境下,不安装python,也可以运行了。
手把手教你用python打造网易公开课视频下载软件4-图形化界面