使用pyqt的第一个程序--北邮人IPTV客户端

使用pyqt的第一个程序--北邮人IPTV客户端_索索_新浪博客

使用pyqt的第一个程序--北邮人IPTV客户端
    [此博文包含图片] (2008-11-11 14:59:14)
    转载▼
    标签:
    qt
    iptv
    it
        分类: Python
        练习练习如何写Gui的程序,思路比较简单,就是将网站上的链接抓下来,然后双击的时候调用mplayer进行播放:
    使用pyqt的第一个程序--北邮人IPTV客户端
       (1)获取链接的代码(使用了urllib和sgmllib库):
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-

import urllib
    import sys
    from sgmllib import SGMLParser
    class URLLister(SGMLParser):
        def reset(self):
            SGMLParser.reset(self)
            self.pieces=[]
            self.urls=[]
            self.data=[]
            self.flag = 0

def start_a(self,attrs):
            href=[v for k,v in attrs if k=="href"]
            if "mms" in str(href):
                self.pieces.extend(href)
                self.flag = 1

def end_a(self):
            self.flag = 0

def handle_data(self,text):
            if(self.flag == 1):
                self.pieces.extend([text.decode('GB2312').encode('UTF-8')]) # (sys.stdin.encoding)])

def getplaylist():
        playlist = []
        usock=urllib.urlopen("http://iptv.bupt.edu.cn/")
        parser=URLLister()
        parser.feed(usock.read())
        usock.close()
        parser.close()

length = len(parser.pieces)/2
        for i in range(length) :
                playlist.extend(["%s %s" % (parser.pieces[i*2+1],parser.pieces[i*2])])
        return playlist

(2)Gui部分的代码:
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-

import sys
    from PyQt4 import QtCore, QtGui
    from iptv import Ui_iptv
    import playlist
    import string

class StartQt4(QtGui.QMainWindow):
        def __init__(self, parent=None):
            QtGui.QWidget.__init__(self, parent)
            self.ui = Ui_iptv()
            self.ui.setupUi(self)
            self.codec = QtCore.QTextCodec.codecForName('UTF-8')
            self.tvlist = playlist.getplaylist()
            self.ui.listTable.clear()
            for url in self.tvlist:
                item = QtGui.QListWidgetItem(self.ui.listTable)
                item.setText(QtGui.QApplication.translate("iptv", url, None, QtGui.QApplication.UnicodeUTF8))            
           QtCore.QObject.connect(self.ui.listTable,QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem*)"),
    self.play)
            QtCore.QMetaObject.connectSlotsByName(self)

def play(self):
            import subprocess
            signalList = self.sender()
            Itemcount = signalList.currentRow()
            Itemtext = self.tvlist[Itemcount]
            url = string.split(Itemtext)[1]
            subprocess.Popen(["smplayer",url])
       
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        myapp = StartQt4()
        myapp.show()
        sys.exit(app.exec_())

分享: [分享到新浪Qing] 分享到新浪Qing

0

喜欢
    阅读(1717)┊ 评论 (0)┊    收藏(0) ┊转载    ┊ 喜欢▼ ┊打印┊举报
    已投稿到:    
    [排行榜] 排行榜 [圈子] 圈子   
    前一篇:c语言中volatile关键字的作用
    后一篇:浅谈C中的malloc和free
    评论 重要提示:警惕虚假中奖信息|[商讯]我有明星气势签名
    [发评论]

当第一个评论者吧! 抢沙发>>

发评论 [商讯]爱心签名换梦想,天天派奖|[商讯]提高博客人气新方法
    mlzboy:
    热门表情小新小浪中粮美好生活管不着和了不起奇童梦乐兔斯基
    更多>>

春节
        春节快乐
        我爸是李刚
        千年极寒
        路过
        灌水
        无语
        无聊

分享到微博 [新]    评论并转载此博文 [新]

验证码: 请点击后输入验证码 收听验证码   
    匿名评论
    发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
    < 前一篇c语言中volatile关键字的作用
    后一篇 >浅谈C中的malloc和free

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音

posted on 2012-12-15 17:21 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/12/15/2819503.html

使用pyqt的第一个程序--北邮人IPTV客户端相关推荐

  1. c语言第一课程序代码怎么打,【北北的小程序】北のC语言第一课:helloworld

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 诶多!helloworld神马的,是我们要编写的第一个程序哟! 话说第一课为什么不讲一些C语言的发展,优势什么的呢?因为LZ是java党!对C语言本身不是 ...

  2. 【zz北邮人】[经历][完稿]cs硕士妹子找工作经历【阿里人搜等互联网】

    发信人: whenmary (whenmary), 信区: Job  标  题: [经历][完稿]cs硕士妹子找工作经历[阿里人搜等互联网]  发信站: 北邮人论坛 (Fri Mar 15 19:39 ...

  3. 北邮人导航html代码,北邮人导航 · BYR-Navi 的安装与配置

    北邮人导航是一个开源的网址导航项目,基于 Jekyll 和 Fomantic UI Web 框架,可以部署于 GitHub Pages 上. 本文说明一下在 Docker 里安装的方法,这类开源项目所 ...

  4. 别浪费自己的高学历!+研究生应当常去的网站+北邮人!应该反思!+写给每一个北邮人

    别浪费自己的高学历!(转) 2011-02-26 22:13 很多人在问念研究生能学到什么,短短的两年时间,上课学不到多少有用的,科研也没怎么搞,到底念研究生能学到什么?一开始念硕士博士的时间都是有这 ...

  5. 发篇面经,感谢北邮人对我的帮助~(摘自北邮人论坛)

    百度搜索研发部: 年后面试,电话面试,一面问的问题很基础,会针对你常用的编程语言问比较典型的问题,我当时的问题是const的用法以及作用,inline 和#define哪个更好,程序在内存中的分为哪些 ...

  6. 北邮人论坛面经转载(2)感谢学长学姐们

    找实习两个月 ------------ 三月初开始找实习到现在两个满月,投了54家公司,去了21场面试,拿了10个offer.下面会是一个长篇的面经,和一些总结的经验教训. 面经 ---- ### 恒 ...

  7. cache性能分析实验 北邮_北邮人又获奖啦快来点赞!

    又获奖了! 近期,我校师生在科技领域又取得了诸多荣誉.教授当选"科技人物".教师论文获大奖.师生团队蝉联挑战赛冠军--让我们一起来看看吧! 彭木根教授当选 "2019·科 ...

  8. Python实现北邮人论坛模拟登录

    推荐去我的博客里查看这篇文章,效果更佳: http://fuxuemingzhu.cn/2017/08/12/byrbbs-login/ 模拟登录北邮人论坛可能是每个学着写爬虫的北邮人必备技能了.在网 ...

  9. python的gui编程用途_Python19-03_GUI编程----GUI编程的介绍(第一个程序)

    GUI编程的介绍(第一个程序) GUI图形用户界面编程 我们前面实现的都是基于控制台程序, 程序和用户交互通过控制台来完成. GUI(Graphics User Interfance)即图形用户界面编 ...

  10. 写给想跳出IT圈的北邮人

    (之前发在了worklife版,但貌似不太适合,再在这里重发一次吧,希望能和大家共同探讨些问题,为还在学校的同学们留下些东西)     这篇文章是写给那些想跳出IT圈的,从事跟IT技术不相关的工作的北 ...

最新文章

  1. 2019年9月2日开学!寒假时间也定了……
  2. Docker(二):Docker 容器使用
  3. ansible笔记(11):初识ansible playbook(二)
  4. python decode()函数 (使用登记用于编码的编解码器解码字节)
  5. 应该允许公司报复黑客吗?
  6. 基于xml进行bean装配
  7. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  8. 时间序列预测算法----Prophet
  9. 层次聚类——自底向上方法
  10. 2015阿里天池大数据竞赛解题源码
  11. 基础 | 管理视图、序列、同义词
  12. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)...
  13. 【目标检测】(13) 先验框解码,调整预测框,附TensorFlow完整代码
  14. 图片转换js (img对象,file对象,base64,canvas对象),以及图片压缩方式
  15. js 事件回调函数的对象属性说明:clientX、screenX、offsetX、pageX
  16. 聊一下盲盒app开发 盲盒小程序开发
  17. Visio画UML类图
  18. msp430 abs函数 c语言,实现一个简单的msp430软件
  19. TMS320F280049C的ADC 阅读记录
  20. 苹果怎么关位置定位服务器,iphone的定位服务在哪里

热门文章

  1. 大学计算机考核方案,计算机学院学生量化考核评定细则.doc
  2. MTK6577+Android编译之android
  3. OutLook2016添加exchange 邮箱遇到的问题
  4. 文本分类(2)——取特征词构建词典
  5. GStreamer和gst-omx插件
  6. python布尔值print_python中的用户输入布尔值
  7. 详解win7升级win10原来的软件还能用吗
  8. ACM MM ECCV 2022 | 美团视觉8篇论文揭秘内容领域的智能科技
  9. Visual Studio 番茄助手 安装问题
  10. Favoring Curry