总觉得程序员应该为自己开发。比如播放器、翻译工具、游览器等。刚开始我们可以使用别人的库,慢慢得我将从上层走到底层,将底层库也重构一遍。

先看一下效果图吧。使用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_())

欢迎提出宝贵意见

python开发的类似stardict工具相关推荐

  1. 微软的python开发工具_面向 Python 开发人员的 Azure 工具

    面向 Python 开发人员的 Azure 工具Azure tools for Python developers 08/06/2020 本文内容 Visual Studio CodeVisual S ...

  2. python开发web运维工具_Python web 开发工具箱

    工欲善其事,必先利其器(装逼工具)Pycharm.专业的python IDE,功能很强大,特别喜欢它的代码merge工具,不想被编辑器折腾死的推荐直接使用,五星级推荐.(除了内存占用大点) vim.本 ...

  3. 使用python开发一个pdf合并工具

    老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码来合并成一个文件, 就希望我能写一个程序来实现这个功能.刚好最近正在学习python,就用python开发了一个 pdf合并工具,也算是学 ...

  4. 3 个提高 Python 开发效率的小工具

    本文将介绍一些有用的小工具,它们能够帮助我们提高工作效率.本文将介绍笔者在近一周发现的三个小工具,写文章以做记录,希望能对大家有所帮助. 本文将介绍的三个小工具如下: 在Sublime Text中支持 ...

  5. 再见所有的翻译工具!我使用了有道云+Python开发一个批量文档翻译工具!

    一.需求分析 需求: 最近有个任务,需要对一批文件进行汉译英的翻译 刚开始想着挺简单的呀,那就直接复制到翻译软件中,在复制出来呗. 有很多办法可以实现翻译: 可以使用谷歌翻译,这个完全免费的.但是不好 ...

  6. python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...

  7. python开发的运维工具_8种常用的Python工具

    Python是一种开源的编程语言,可用于Web编程.数据科学.人工智能以及许多科学应用.学习Python可以让程序员专注于解决问题,而不是语法.由于Python相对较小,且拥有各式各样的工具,因此比J ...

  8. 使用Python 开发录屏小工具

    1.Python 环境:Python 3.6.8 2.所使用的模块:tkinter,cv2,PIL,numpy 废话不多说上代码, import tkinter as tk from tkinter ...

  9. python django开发工具_Django+python 开发神器

    Python(派森)英文名称:穿山甲.它是一种面向对象的用途非常广泛的编程语 言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行.python的语法灵活,模 ...

最新文章

  1. 网站网页编写需要注意哪些问题?
  2. JAVA标识符的命名规则和规范
  3. 比 Hive 快 500 倍!大数据实时分析领域的黑马
  4. java map 对象作为key_Java 将自定义的对象作为HashMap的key
  5. Python基础——yield的使用与解释
  6. linux apt 安装命令
  7. 数据清理中,处理缺失值的方法
  8. Excel如何查找重复内容
  9. [转载] 网络硬件发展史
  10. 项目管理网络图概念总结
  11. 企业数据治理之主数据管理
  12. uvm_objection/uvm_objection_events/test_done_objection/callbacks_objection/objection_callback
  13. 拿好这份踏青攻略,智慧出游领略大好河山!
  14. 荣耀30可以升级鸿蒙系统,惊喜!荣耀手机也能升鸿蒙:这5款机型用户有福了
  15. Map.Entry的一般用处是什么?
  16. oracle rac节点重启的原因,由重启引起的Oracle RAC节点宕机分析及追根溯源
  17. MAC OSX打开文件提示cannot be opened because the developer cannot be verified问题的解决办法
  18. 这一轮AI会带来什么样的范式转移?
  19. 忘记drupal7的管理员密码的恢复方法
  20. 网易云的招股书,递交了几分情怀?

热门文章

  1. hdu1535 Invitation Cards 最短路
  2. Redis有哪几种数据淘汰策略?
  3. ShardingSphere(六) 读写分离之mysql 主从同步配置
  4. python中mat函数_Python中flatten( )函数及函数用法详解
  5. 第五章---引入VIP后的数据库架构
  6. Java消息中间件--ActiveMq,RabbitMQ,Kafka
  7. super.onCreate(savedInstanceState)
  8. netty的编解码、粘包拆包问题、心跳检测机制原理
  9. MySQL对于有大量重复数据表的处理方法
  10. 良好的Makefile实践