python小程序
!usrbinenv python
-- coding utf-8 --
import pygtk
import gtk
import gtk.glade
import urllib
import urllib2
import threading
import re
import sys
class trans(threading.Thread):
def init(self):
threading.Thread.init(self, name='trans')
self.url='httpfanyi.cn.yahoo.comtranslate_txt'
self.text=None
self.trans_in=''
self.trans_out=''
self.text_out=None
self.text_in=None
def getText(self,widget)
buf=widget.get_buffer()
b,e=buf.get_bounds()
return buf.get_text(b,e)
def setText(self,widget,text=''):
buf=widget.get_buffer()
buf.set_text(text)
widget.set_buffer(buf)
def run(self):
self.setText(self.text_out,'正在翻译')
values={'ei''UTF-8',
'fr''',
'lp''%s_%s' %(self.trans_in,self.trans_out),
'trtext''%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('div id=pd class=pd (.{1,})div',res)
res=res[0].replace('br','n')
res=res.replace('dnt dnt','n')
self.setText(self.text_out,res)
主界面类
class yahooTrans()
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)
def toZh(self,widget)
print widget.get_name()
t=trans()
t.text_in=self.widgetTree.get_widget('text_in')
t.text_out=self.widgetTree.get_widget('text_out')
if widget.get_name()=='to_zh'
t.trans_in='en'
t.trans_out='zh'
else
t.trans_in='zh'
t.trans_out='en'
t.setDaemon(True)
t.start()
def main(self)
gtk.main()
入口,gtk主程序循环
if name=='main' gtk.gdk.threads_init() app=yahooTrans() app.main()
blog comments powered by Disqus