Python 的专业英语翻译器实现(TKinter)

翻译器流程
在这里插入图片描述
1:功能实现
软件主要使用了 Requests 库和 Tkinter 窗口视窗设计的模块, 调用有道翻译接口完成翻译功能:

2:Requests 库
在 Web 后台开发过程中, 会遇到需要向第三方发送 http 请求的场景, Python 中的 Requests 库可以很好地满足这一要求。Requests 模 块 数据 第 三 方 库 , 这 里 使用 pip 进行安装: pip install requests。

3:Tkinter 模块
Tkinter 是 Python 的 标 准 GUI 库 。 Python 使 用Tkinter 可 以 快速 的 创 建 GUI 应 用 程 序 。 由 于 Tkinter是内置到 Python 的安 装包中、 只要安装好 Python 之后 就 能 import Tkinter 库 、 而 且 IDLE 也 是 用 Tkinter编写而成、 对于简单的图形界面 Tkinter 还 是 能 应 付自如。

4:有道翻译接口
有道翻译 API,为广大开发者提供开放接口,或网站可通过有道翻译 API, 构建丰富多样的功能或应用,为用户带来即时、准确、方便的查词或翻译体验, 从而降低语言理解与应用门槛。

5:程序设计
定义 Translate 类, 主要功能:
(1) def init (self) : 初始 化 窗 口 名 称 及 大 小 、 创
建一个输入框用于等待用户输入、 创建一个文本展示框
用于输出翻译结果。
(2) def gui_arrang (self) : 完 成 页 面 元 素 布 局 , 设
置各部件的位置。
(3) def fanyi (self) : 完成翻译功能。
(4) def cle (self) : 用于清空输出框的内容。
(5) def cle_e (self) : 用于清空输入框的内容。
定义主函数 def main() :主要用于完成对 Translate 类
的实例化和调用, 为整个软件的启动入口。

# -*- coding:utf-8 -*-

import requests
from requests.exceptions import RequestException
import tkinter as tk
class Translate():

 def _init_(self):
    self.window = tk.Tk()  # 创建 window 窗口
    self.window.title("专业英语翻译器")  # 定义
# 窗口名称
    self.window.resizable(0, 0)  # 禁止调整窗口
# 大小
    self.input = tk.Entry(self.window, width=80)
# 创建一个输入框,并设置尺寸
    self.info = tk.Text(self.window, height=18)
# 创建一个文本展示框,并设置尺寸
# 添加一个按钮,用于触发翻译功能
    self.t_button = tk.Button(self.window, text=' 翻 译 ', relief=tk.RAISED, width=8, height=1, command=self.fanyi)
# 添加一个按钮,用于触发清空输入框功能
    self.c_button1 = tk.Button(self.window, text=' 清空输 入 ', relief=tk.RAISED, width=8, height=1, command=self.cle_e)
# 添加一个按钮,用于触发清空输出框功能
    self.c_button2 = tk.Button(self.window, text=' 清空输出 ', relief=tk.RAISED, width=8, height=1, command=self.cle)
# 添加一张图标
    self.image_file = tk.PhotoImage(file='logo.fw.png')
    self.label_image = tk.Label(self.window, image=self.image_file)

"""完成页面元素布局,设置各部件的位置"""
def gui_arrang(self):
    self.input.grid(row=0, sticky="W", padx=1)
    self.info.grid(row=1)
    self.t_button.grid(row=0, column=1, padx=2)
    self.c_button1.grid(row=0, column=2, padx=2)
    self.c_button2.grid(row=0, column=3, padx=2)
    self.label_image.grid(row=1, column=1, columnspan=3)

    """定义一个函数,完成翻译功能"""
def fanyi(self):
    original_str = self.input.get()
    # 定义一个变量,用来接收输入框输入的值
    data = {'doctype': 'json', 'type': 'AUTO', 'i': original_str}  # 将输入框输入的值,赋给接口参数
    url = "http://fanyi.youdao.com/translate"
    try:
        r = requests.get(url, params=data)
        if r.status_code == 200:
          result = r.json()
          translate_result = result['translate Result'][0][0]["tgt"]
          self.info.delete(1.0, "end")  # 输出翻译
    # 内容前,先清空输出框的内容
        self.info.insert('end', translate_result)
    # 将翻译结果添加到输出框中
    except RequestException:
         self.info.insert('end', "发生错误")

"""定义一个函数,用于清空输出框的内容"""
def cle(self):
     self.info.delete(1.0,"end") # 从第一行清除到
# 最后一行
"""定义一个函数,用于清空输入框的内容"""
def cle_e(self):
    self.input.delete(0, "end")

def main():
    t = Translate()
    t.gui_arrang()
    tk.mainloop()
if __name__ == '__main__':
    main()

界面

在这里插入图片描述

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值