使用python Tkinter + requests 实现英汉互译功能

使用Tkinter + requests 写一个翻译的小工具,实现实时翻译功能

借用了百度开放翻译接口

百度翻译平台地址:http://api.fanyi.baidu.com/api/trans/product/index

里面有详细的接口文档介绍,参考文档就可以啦~

目前功能还未完全完善,包括界面的布局也有些不美观,等后期优化吧,话不多说,直接上

import random
import requests
import hashlib

try:
    from tkinter import *
except ImportError:  #Python 2.x
    PythonVersion = 2
    from Tkinter import *
    from tkFont import Font
    from ttk import *
    from tkMessageBox import *
    import tkFileDialog

class Application():

    #定义tk整体布局
    def __init__(self):
        self._from = 'en'
        self._to = 'zh'
        self._appid = '************'#保密起见就隐藏了~
        self._key = '*************'

        self.root = Tk()
        self.root.title('longfei')
        self.root.geometry("900x700")

        self.flm = Frame(self.root)
        Label(self.flm,text="需要翻译的句子").pack()
        self.l = Text(self.flm,width=60,height=20)
        self.flm.pack()
        self.l.pack()

        self.button1 = Button(self.flm, text="翻译", command=self.Getcontent).pack()
        self.button2 = Button(self.flm, text="清除输入框内容", command=self.deltext).pack()

        self.t = Text(self.flm,width=60,height=20)
        self.t.pack()

    #获取输出的内容
    def Getcontent(self):
        self.GetResult()
        for itam in self.content:
            self.t.insert(END,itam)

    def deltext(self):
        self.t.delete(0.0,END)

    #请求接口并抓取返回的数据
    def GetResult(self):
        q = (self.l.get('0.0','end')).encode('utf8').strip()#.strip 删除结尾处的字符串 get text会默认有换行字符串
        url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
        salt = str(random.randint(10000000,99999999))
        sigin = (self._appid + q + salt + self._key).replace('\r\n','')
        m1 = hashlib.md5()
        m1.update(sigin)
        sign = m1.hexdigest()
        self.content = []#定义空数组放取到的内容

        myurl = url + '?q=' + q + '&from=' + str(self._from) + '&to=' + str(self._to)+'&appid=' + str(self._appid) +'&salt='+str(salt)+'&sign='+sign

        try:
            respose = requests.get(myurl)
            data = respose.json()
            # global print_content
            print_content = data['trans_result'][0]['dst']
            self.content.append(print_content)
            # print self.content
        except:
            print "error"


app = Application()
mainloop()

最终效果图


以上~新人求点赞 哈哈

阅读更多
换一批

没有更多推荐了,返回首页