python开发的类似stardict工具

简介:

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

先看一下效果图吧。使用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天前
|
Python
LabVIEW和Python开发微细车削控制系统
LabVIEW和Python开发微细车削控制系统
LabVIEW和Python开发微细车削控制系统
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
8 2
|
1天前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
8 3
|
5天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
16 0
|
5天前
|
前端开发 文件存储 Python
python之xhtml2pdf: HTML转PDF工具示例详解
python之xhtml2pdf: HTML转PDF工具示例详解
8 0
|
5天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
13 0
|
5天前
|
Python
Python 中的异常处理机制是一种强大的错误处理工具
Python的异常处理机制借助try/except结构管理错误,提高程序健壮性。异常是中断正常流程的问题,可由多种原因引发。基本结构包括try块(执行可能出错的代码)和except块(处理异常)。通过多个except块可捕获不同类型的异常,finally块确保无论是否异常都执行的代码。此外,raise语句用于主动抛出异常,自定义异常通过继承Exception类实现。with语句配合上下文管理器简化资源管理并确保异常情况下资源正确释放。
17 2
|
7天前
|
缓存 开发者 Python
《Python中的装饰器:优雅而强大的代码增强工具》
在现代软件开发中,Python语言的灵活性和简洁性备受推崇。其中,装饰器作为一种强大的代码增强工具,为Python开发者提供了优雅的解决方案。本文将深入探讨装饰器的原理、用法以及实际应用场景,帮助读者更好地理解和运用这一技术。
|
13天前
|
机器学习/深度学习 边缘计算 TensorFlow
【Python机器学习专栏】Python机器学习工具与库的未来展望
【4月更文挑战第30天】本文探讨了Python在机器学习中的关键角色,重点介绍了Scikit-learn、TensorFlow和PyTorch等流行库。随着技术进步,未来Python机器学习工具将聚焦自动化、智能化、可解释性和可信赖性,并促进跨领域创新,结合云端与边缘计算,为各领域应用带来更高效、可靠的解决方案。
|
14天前
|
数据可视化 API Python
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)