设为首页 收藏本站
查看: 1692|回复: 0

[经验分享] python开发的类似stardict工具

[复制链接]

尚未签到

发表于 2015-4-23 06:04:36 | 显示全部楼层 |阅读模式
  总觉得程序员应该为自己开发。比如播放器、翻译工具、游览器等。刚开始我们可以使用别人的库,慢慢得我将从上层走到底层,将底层库也重构一遍。
DSC0000.png
  先看一下效果图吧。使用gedit开发,不过这个IDE还有一些问题。等我之道怎么弄之后再告诉大家。
  贴出代码
  


#!/usr/bin/python

#exam.py

import sys
from PyQt4 import QtGui,QtCore
import urllib
import codecs
from BeautifulSoup import BeautifulSoup
import re,time
class MessageBox(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        
        #set the geometry
        self.setGeometry(300,300,500,350)
        self.setWindowTitle('translate')
        
        #add widgets
        self.clearbtn = QtGui.QPushButton("Clear")
        self.titleEdit = QtGui.QLineEdit()
        self.searchbtn = QtGui.QPushButton("Search")
        self.resultEdit = QtGui.QTextEdit()
        
        #layout
        self.hbox = QtGui.QHBoxLayout()
        self.hbox.addWidget(self.clearbtn)
        self.hbox.addWidget(self.titleEdit)
        self.hbox.addWidget(self.searchbtn)
        
        self.mainbox = QtGui.QVBoxLayout()
        self.mainbox.addLayout(self.hbox)
        self.mainbox.addWidget(self.resultEdit)
        
        self.setLayout(self.mainbox)
        
        self.connect(self.clearbtn,QtCore.SIGNAL('clicked()'),self.clear)
        self.connect(self.searchbtn,QtCore.SIGNAL('clicked()'),self.getMean)
        self.connect(self.titleEdit,QtCore.SIGNAL('returnPressed()'),self.getMean)
         
    #search event
    def getMean(self):
        word = self.titleEdit.text()
        url="http://dict.baidu.com/s?wd=%s&tn=dict" %  word
        self.htmlsourse=unicode(urllib.urlopen(url).read(),"gb2312","ignore").encode("utf-8","ignore")
        soup=BeautifulSoup("".join(self.htmlsourse))
        self.data=str(soup.find("div",{"id":"enc"}))
        soup=BeautifulSoup(self.data)
        self.outtext=''.join([element  for element in soup.recursiveChildGenerator() if isinstance(element,unicode)])
        for item in range(1,10):
            self.outtext=self.outtext.replace(str(item),"\n%s" % str(item))
        self.outtext=self.outtext.replace("  ","\n")
        self.resultEdit.setText(self.outtext)
   
    #clear event
    def clear(self):
        self.titleEdit.setText('')
   
        
    #close event
    def closeEvent(self,event):
        reply = QtGui.QMessageBox.question(self,'message',"Are you sure to quit?",QtGui.QMessageBox.Yes,QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

app = QtGui.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.exec_())
  
  欢迎提出宝贵意见
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59703-1-1.html 上篇帖子: 笔试测试开发题三道(python) 下篇帖子: EditPlus for python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表