上一篇讲解完函数: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. Spring 容器

    Spring提供了两个核心接口:BeanFactory和ApplicationContext,其中applicationContext是BeanFactory的子接口. 他们都可代表Spring容器, ...

  2. java TreeMap用法

    转自:http://huchenqiang90.blog.163.com/blog/static/11250080020101025956498/ 最近工作遇到需要按一个model中不同的列进行排序的 ...

  3. js创建对象的几种方式

    /** * 顺便重温一下对象的创建方式 * 代码简单说明问题就好 * 概念性的东西这里就不提了,只加上自己简单理解 */ /** * 工厂模式,就是将手动的创建细节封装在一个方法里, * return ...

  4. 阿里云安装Tomcat

    1.Apache官方网站下载Tomcat http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.35/bin/apache-tomcat-8.0 ...

  5. 1014 : Trie树 hihocoder

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. ...

  6. python基础整理笔记(九)

    一. socket过程中注意的点 1. 黏包问题 所谓的黏包就是指,在TCP传输中,因为发送出来的信息,在接受者都是从系统的缓冲区里拿到的,如果多条消息积压在一起没有被读取,则后面读取时可能无法分辨消 ...

  7. reduce方法

    API里面这样写 reduce(initial, sym) → obj                              reduce(初始值,符号) reduce(sym) → obj re ...

  8. 用cookie记住用户名

    有时候,我们在做登陆框时会有个复选框选择请记住我,或者有时候会遇到一些弹出框说下次不再提醒,此功能我们可以用js中的cookie实现此功能 下面记录一下如何实现该功能: 利用cookie记录用户名 1 ...

  9. 在c#中使用bitblt显示图片

    使用bitblt比DrawImage有更好的性能 using AForge.Video.DirectShow; using System; using System.Collections.Gener ...

  10. 【转】IE劫持原理 BHO

    为什么"浏览器劫持"能够如此猖狂呢?放眼众多论坛的求助贴,我们不时可以看到诸如"我的IE被主页被改了,我用杀毒工具扫了一遍都没发现病毒,我把主页改回自己的地址,可是一重启 ...