python开发的类似stardict工具
总觉得程序员应该为自己开发。比如播放器、翻译工具、游览器等。刚开始我们可以使用别人的库,慢慢得我将从上层走到底层,将底层库也重构一遍。
先看一下效果图吧。使用gedit开发,不过这个IDE还有一些问题。等我之道怎么弄之后再告诉大家。
贴出代码
#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工具相关推荐
- 微软的python开发工具_面向 Python 开发人员的 Azure 工具
面向 Python 开发人员的 Azure 工具Azure tools for Python developers 08/06/2020 本文内容 Visual Studio CodeVisual S ...
- python开发web运维工具_Python web 开发工具箱
工欲善其事,必先利其器(装逼工具)Pycharm.专业的python IDE,功能很强大,特别喜欢它的代码merge工具,不想被编辑器折腾死的推荐直接使用,五星级推荐.(除了内存占用大点) vim.本 ...
- 使用python开发一个pdf合并工具
老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码来合并成一个文件, 就希望我能写一个程序来实现这个功能.刚好最近正在学习python,就用python开发了一个 pdf合并工具,也算是学 ...
- 3 个提高 Python 开发效率的小工具
本文将介绍一些有用的小工具,它们能够帮助我们提高工作效率.本文将介绍笔者在近一周发现的三个小工具,写文章以做记录,希望能对大家有所帮助. 本文将介绍的三个小工具如下: 在Sublime Text中支持 ...
- 再见所有的翻译工具!我使用了有道云+Python开发一个批量文档翻译工具!
一.需求分析 需求: 最近有个任务,需要对一批文件进行汉译英的翻译 刚开始想着挺简单的呀,那就直接复制到翻译软件中,在复制出来呗. 有很多办法可以实现翻译: 可以使用谷歌翻译,这个完全免费的.但是不好 ...
- python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...
- python开发的运维工具_8种常用的Python工具
Python是一种开源的编程语言,可用于Web编程.数据科学.人工智能以及许多科学应用.学习Python可以让程序员专注于解决问题,而不是语法.由于Python相对较小,且拥有各式各样的工具,因此比J ...
- 使用Python 开发录屏小工具
1.Python 环境:Python 3.6.8 2.所使用的模块:tkinter,cv2,PIL,numpy 废话不多说上代码, import tkinter as tk from tkinter ...
- python django开发工具_Django+python 开发神器
Python(派森)英文名称:穿山甲.它是一种面向对象的用途非常广泛的编程语 言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行.python的语法灵活,模 ...
最新文章
- 网站网页编写需要注意哪些问题?
- JAVA标识符的命名规则和规范
- 比 Hive 快 500 倍!大数据实时分析领域的黑马
- java map 对象作为key_Java 将自定义的对象作为HashMap的key
- Python基础——yield的使用与解释
- linux apt 安装命令
- 数据清理中,处理缺失值的方法
- Excel如何查找重复内容
- [转载] 网络硬件发展史
- 项目管理网络图概念总结
- 企业数据治理之主数据管理
- uvm_objection/uvm_objection_events/test_done_objection/callbacks_objection/objection_callback
- 拿好这份踏青攻略,智慧出游领略大好河山!
- 荣耀30可以升级鸿蒙系统,惊喜!荣耀手机也能升鸿蒙:这5款机型用户有福了
- Map.Entry的一般用处是什么?
- oracle rac节点重启的原因,由重启引起的Oracle RAC节点宕机分析及追根溯源
- MAC OSX打开文件提示cannot be opened because the developer cannot be verified问题的解决办法
- 这一轮AI会带来什么样的范式转移?
- 忘记drupal7的管理员密码的恢复方法
- 网易云的招股书,递交了几分情怀?
热门文章
- hdu1535 Invitation Cards 最短路
- Redis有哪几种数据淘汰策略?
- ShardingSphere(六) 读写分离之mysql 主从同步配置
- python中mat函数_Python中flatten( )函数及函数用法详解
- 第五章---引入VIP后的数据库架构
- Java消息中间件--ActiveMq,RabbitMQ,Kafka
- super.onCreate(savedInstanceState)
- netty的编解码、粘包拆包问题、心跳检测机制原理
- MySQL对于有大量重复数据表的处理方法
- 良好的Makefile实践