上一篇讲解完函数:def getdownLoadInfo (url):

传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面。大概思考一下图像化界面需要的内容:
(1)一个标签:显示为:“请输入公开课地址”
(2)一个文本框:用来输入地址
(3)一个按钮:点击用来提取视频信息
(4)一个标签和多行文本框,其中标签用来显示课程信息,多行文本用来显示下载链接
完成后的效果图如下:
 
我们先贴出代码:
 #创建APP
    app=wx.App(False)
  #创建frame窗口
    frame=wx.Frame(parent= , ),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(,wx.DECORATIVE,wx.NORMAL,wx.NORMAL)
    label.SetFont(font)
    
    text=wx.TextCtrl(panel,size=( ,- ))
    
    button=wx.Button(panel,label=u '提取下载地址' )
    button.SetFont(font)
    frame.Bind(wx.EVT_BUTTON,showInfo, button)
    labelInfo=wx.StaticText(panel,size=(- , ))
    textArea=wx.TextCtrl(panel,style=wx.TE_MULTILINE,size=( , ))
    #用sizer控制界面
    sizer=wx.FlexGridSizer(cols= ,vgap= )
    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-图形化界面的更多相关文章

  1. 手把手教你用python打造网易公开课视频下载软件1-总述

    写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...

  2. 手把手教你用python打造网易公开课视频下载软件2-编码相关说明

    函数getdownLoadInfo(url)主要实现核心功能:根据url地址,获取课程信息:课程名(courseTitle),课程数目(courseCount),可下载视频数目(videoCount) ...

  3. 手把手教你用python打造网易公开课视频下载软件5-python生成exe程序

    python程序生成exe文件,使用的是py2exe扩展包,下面写下具体的步骤: 第一步:新建conver2exe.py,内容如下: #coding:utf-8 from distutils.core ...

  4. 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

    上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...

  5. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...

  6. 手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝

    手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝ 想用python做机器学习吗,是不是在为从哪开始挠头?这里我假定你是新手,这篇文章里咱们一起用Python完成第一个机器学习项目.我会手把手 ...

  7. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

  8. 手把手教你吧Python应用到实际开发 不再空谈悟法✍✍✍

    手把手教你吧Python应用到实际开发 不再空谈悟法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

  9. 手把手教你把Python应用到实际开发 不再空谈语法

    手把手教你把Python应用到实际开发 不再空谈语法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

随机推荐

  1. 解析jquery获取父窗口的元素

    ("#父窗口元素ID",window.parent.document); 对应javascript版本为window.parent.document.getElementByIdx ...

  2. 默认构造方法并非总是public的

    以前印象中一直有一个概念,说"如果没有提供构造方法,java将自动添加一个空的public的构造方法".现在看来,有2个问题,一,默认构造方法未必是public的,二,默认构造方法 ...

  3. 性能测试之--Apache JMeter安装

    Hi,今天给大家分享一下安装JMeter的相关内容~ Apache JMeter 是Apache组织的开源项目,是一个100%纯Java桌面应用,用于压力测试和性能测试. 它能够对HTTP.FTP服务 ...

  4. CAD二次开发 - 可缩放块(四)

    1.说明 可进行缩放性注释的对象有:文字.标注.图案填充.公差.多重引线.块及属性. 2.为图形添加.删除注释比例步骤 1)使用AnnotationScale类(在DatabaseServices命名 ...

  5. SharePoint 2013异常信息的查看

    刚刚学习SharePoint开发的时候,经常遇到一些异常,却不能直接看到详细信息,很郁闷.这里做下简单的整理,方便查找: 1.代码未处理异常出现黄页——”‘/’应用程序中的服务器错误.运行时错误“. ...

  6. 异常:System.Data.EvaluateException: 未找到列[District].

    异常:System.Data.EvaluateException: 未找到列[District]. 这里存在的问题不一定是说,数据源表没有该字段.此问题在于数据库字段包含空格字符.

  7. vs调试断点进不去的解决办法

    原创文章,禁止转载. 断点进不去的解决办法:  确认是debug版本  确认生成了调试信息  确认在编译和连接的工程配置中指定了相同的匹配的pdb文件名,而不是默认的vc100.pdb等名字(无关) ...

  8. 【分块打表】bzoj3758 数数

    验证一个数是不是优美的:设数位之和为sum,若sum mod 2 != 0,则不优美.否则考虑枚举这个数的每一位,将之前所有位任意相加产生的所有 数字和 和 当前位 的和塞到集合里,最终判断集合中是否 ...

  9. ELK 5.0 组件后台启动

    elasticsearch 后台启动,只需要 在bin目录下执行: ./elasticsearch -d 查看是否启动成功使用: ps aux|grep elasticsearch kibana 后台 ...

  10. java 单利模式

    首先何为单利模式: 单利模式即多次调用同一个对象的时候,只有一个实例(这里所谓的实例就是,假如创建了两个对象,它们的hashCode相同) 下面是相关代码: 1 创建一个对象Singleton类 pa ...