用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf

用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf

ID:52289209

大小:123.76 KB

页数:4页

时间:2020-03-26

用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf_第1页
用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf_第2页
用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf_第3页
用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf_第4页
资源描述:

《用python+pygtk+glade3 实现Yahoo翻译桌面版.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用python+pygtk+glade3实现Yahoo翻译桌面版2009-03-152200#转这个代码,方便学习pygtk,对比了tk和wx,发现还是pygtk好点。#转自httpblog.wangfan.orgindex.phpa=post&bid=17每次翻译都去yahoo的网站不是很方便,所以自己写了一个Yahoo翻译桌面版)整个程序用python做为编码语言,pygtk库实现gui。为了方便,用glade3画了界面。先来看看最终的程序界面吧:(由于我用不到别的外语,所以功能上只有英汉互译。)首先,在开始编码之前,分析一下yahoo翻译的网页(httpfanyi.cn.yahoo

2、.com)来确定程序的核心逻辑。Yahoo翻译的网页源码很简单,一目了然,不像google翻译的网页有这么多花哨的ajax,每次翻译都是向httpfanyi.cn.yahoo.comtranslate_txtPOST数据,格式为“ei=UTF-8&fr=&lp=en_zh&trtext=”英译中对应的lp值为en_zh,中译英对应的lp值为zh_en,trtext就是原文的内容。分析好了就可以开始编码了)贴出程序的完整源码:#!usrbinenvpython#--codingutf-8--#导入库文件importpygtkimportgtkimportgtk.gladeimporturl

3、libimporturllib2importthreadingimportreimportsys#翻译功能类,继承于一个线程类。classtrans(threading.Thread)#初始化def__init__(self)threading.Thread.__init__(self,name='trans')self.url='httpfanyi.cn.yahoo.comtranslate_txt'self.text=Noneself.trans_in=''self.trans_out=''self.text_out=Noneself.text_in=NonedefgetText(s

4、elf,widget)buf=widget.get_buffer()b,e=buf.get_bounds()returnbuf.get_text(b,e)defsetText(self,widget,text='')buf=widget.get_buffer()buf.set_text(text)widget.set_buffer(buf)defrun(self)self.setText(self.text_out,'正在翻译')values={'ei''UTF-8','fr''','lp''%s_%s'%(self.trans_in,self.trans_out),'trtext''%

5、s'%(self.getText(self.text_in).replace('n','rnr'),)}data=urllib.urlencode(values)request=urllib2.Request(self.url,data)conn=urllib2.urlopen(request)res=conn.read()res=re.findall('divid=pdclass=pd(.{1,})div',res)res=res[0].replace('br','n')res=res.replace('dntdnt','n')self.setText(self.text_out,re

6、s)#主界面类classyahooTrans()def__init__(self)self.ui_file=sys.path[0]+'ui.glade'self.widgetTree=gtk.glade.XML(self.ui_file,'window1')dic={on_exit_clickedgtk.main_quit,on_window1_destroygtk.main_quit,on_to_zh_clickedself.toZh,on_to_en_clickedself.toZh}self.widgetTree.signal_autoconnect(dic)deftoZh(sel

7、f,widget)printwidget.get_name()t=trans()t.text_in=self.widgetTree.get_widget('text_in')t.text_out=self.widgetTree.get_widget('text_out')ifwidget.get_name()=='to_zh't.trans_in='en't.trans_out='zh'elset.trans_in='zh't.tr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。