guoqc3 发表于 2020-12-21 10:17

一个无聊的调用有道翻译的翻译界面。

# -*- 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='py128.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['translateResult']["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()

南归不NG 发表于 2020-12-21 11:11

迦南圣经 发表于 2020-12-21 10:25
感谢分享,鄙人不懂Py这一块,目前还只会用exe

已打包,https://jiaobens.lanzouj.com/iTS0Ljk50va

南归不NG 发表于 2020-12-21 11:13

https://jiaobens.lanzouj.com/iTS0Ljk50va          已将py文件打包成exe。

迦南圣经 发表于 2020-12-21 10:25

感谢分享,鄙人不懂Py这一块,目前还只会用exe

zouludaifeng 发表于 2020-12-21 10:55

可以啊谢谢分享{:1_908:}

迦南圣经 发表于 2020-12-21 11:26

南归不NG 发表于 2020-12-21 11:11
已打包,https://jiaobens.lanzouj.com/iTS0Ljk50va

谢谢大佬,要是能学的话就好了

EnzoGo 发表于 2020-12-21 12:49

谢谢分享,自己写不会,照着写又学了点

wontbackdown 发表于 2020-12-21 13:44

感谢分享了

wontbackdown 发表于 2020-12-21 13:45

数字竟然报毒。。。

mokson 发表于 2020-12-21 14:17

页: [1] 2
查看完整版本: 一个无聊的调用有道翻译的翻译界面。