最新消息:

PyGTK+glade简单实现google translate桌面版

python admin 3375浏览 0评论

打算毕业设计做个pyRssReader,用pygtk+glade+xml解析完成,先简单熟悉一下,参照这网上的一些文章和例子简单写了一个pyGoogleTranslator

截图

dc6ZU iENcS

源码:

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
import gtk
import gtk.glade
import urllib
import urllib2
import threading
import re
import sys

class translation(threading.Thread):

    def __init__(self):
        threading.Thread.__init__(self,name='translation')
        self.url="http://www.google.com/dictionary?langpair=%s|%s&q=%s&hl=en&aq=f"
        self.text=None
        self.trans_in=''
        self.trans_out=''
        self.text_in=None
        self.text_out=None

    def getText(self,widget):
        return widget.get_text()

    def setText(self,widget,text=''):
        widget.set_text(text)
        return True

    def run(self):
        self.setText(self.text_out,'正在翻译')
        self.data=(self.url % (self.trans_in,self.trans_out,self.getText(self.text_in)))
        request=urllib2.Request(self.data)
        conn=urllib2.urlopen(request)
        res=conn.read()
        res=re.findall('<meta name="description".*>',res)
        res=''.join(res)
        tmp1=re.compile('[<[^>].*:').sub("",res)
        tmp2=re.compile('-[^>].*>').sub("",tmp1)
        self.setText(self.text_out,tmp2)

class googleTrans():

    def __init__(self):
        self.flags=True
        self.ui_file='./pyGT.glade'
        self.wTree=gtk.glade.XML(self.ui_file,'window1')
        self.window = self.wTree.get_widget ("window1")
        self.button =self.wTree.get_widget("button1")
        self.window.set_default_size(400,400)
        self.window.set_position(gtk.WIN_POS_CENTER)
        dic={'on_window1_destroy':gtk.main_quit,
             'on_zh2en_toggled':self.zh2en,
             'on_en2zh_toggled':self.en2zh,
             'on_button1_clicked':self.tran
            }
        self.wTree.signal_autoconnect(dic)
        self.window.show_all()

    def zh2en(self,widget):
        self.flags=False
    def en2zh(self,widget):
        self.flags=True

    def tran(self,widget):
        t=translation()
        t.text_in=self.wTree.get_widget('entry1')
        t.text_out=self.wTree.get_widget('entry2')
        if self.flags:
            t.trans_in='en'
            t.trans_out='zh-CN'
        else:
            t.trans_in='zh-CN'
            t.trans_out='en'
        t.setDaemon(True)
        t.start()
    def main(self):
        gtk.main()

if __name__=='__main__':
    gtk.gdk.threads_init()
    app=googleTrans()
    app.main()

为什么wordpress总爱把下划线给吃掉=_=
源码文件:here,glade文件:here

转载请注明:爱开源 » PyGTK+glade简单实现google translate桌面版

您必须 登录 才能发表评论!