IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 简易的有道翻译器 -> 正文阅读

[Python知识库]简易的有道翻译器

简易翻译器

简单的Introduction

  • 先说说这个工具我们将会用到的python库:
  • import tkinter as tk
    import requests

  • 用到tkinter是因为我们在后面会做一个UI界面,为什么会用tkinter,而不用pyqt5呢,一个简单的原因,因为简单,哈哈哈。
  • 用requests库是因为我们需要向有道的官网发送一个post请求,获取返回的数据,这里会用到一点点网络爬虫的东西,不懂的可以自学一下。
  • 废话不多说,开干!!!

代码部分

(1)爬虫部分

  • 有道翻译的网址:http://fanyi.youdao.com/translate?smartresult=dict,rule
  • translate函数
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0'}
def translate(ke):
    url = 'http://fanyi.youdao.com/translate?smartresult=dict,rule'
    data = {
        'i':ke,
        'doctype':'json'
    }
    res = requests.post(url, data=data, headers=headers)
    code = res.status_code
    if code == 200:
        res_data = res.json()
        if res_data['errorCode'] == 0:
            return res_data['translateResult'][0][0]["tgt"]
  • 介绍一下参数的含义:

ke:需要翻译的字符串,比如说(你好)。

(2)开始进入我们的UI部分

在这里插入图片描述

  • 可以看见上图有8个控件:
    2个按钮控件,2个Text,2个scrollbar,2个Label标签。
  • 直接上代码:
class Mywindow():
   def __init__(self):
       self.root = tk.Tk()
       self.root.geometry("600x400")
       self.root.title("简易翻译器")
       self.root.config(bg="SkyBlue")
       self.root.iconphoto(False, tk.PhotoImage(file='1.png'))


       self.label1 = tk.Label(self.root, text="原文:", font="宋体").place(x=0, y=0)
       self.text1 = tk.Text(self.root, height=6, font="宋体")
       self.text2 = tk.Text(self.root, height=6, font="宋体")

       self.scr1 = tk.Scrollbar(self.text1, width=10)
       self.scr1.pack(side=tk.RIGHT, fill=tk.Y)
       self.scr1.config(command=self.text1.yview)
       self.scr2 = tk.Scrollbar(self.text2, width=10)
       self.scr2.pack(side=tk.RIGHT, fill=tk.Y)
       self.scr2.config(command=self.text2.yview)

       self.text1.config(yscrollcommand=self.scr1.set)
       self.text2.config(yscrollcommand=self.scr2.set)
       self.text1.bind('<Control-Up>', self.ok1)
       self.text1.bind('<Control-Down>', self.btn2_del1)
       self.btn1 = tk.Button(self.root, text="确定", activeforeground='blue',
                             activebackground='yellow', command=self.ok).place(x=540, y=50, width=50, height=30)
       self.btn2 = tk.Button(self.root, text='清除', command=self.btn2_del,
                             activeforeground='blue', activebackground='yellow').place(x=540, y=120, width=50, height=30)
       self.label2 = tk.Label(self.root, text="译文:", font="宋体").place(x=0, y=170)
       self.menu = tk.Menu(self.root,
                   tearoff=False,
                   # bg="black",
                   )
       self.menu.add_command(label="剪切", command=self.cut)
       self.menu.add_command(label="复制", command=self.copy)
       self.menu.add_command(label="粘贴", command=self.paste)
       self.root.bind("<Button-3>", self.popup)
       self.pack()
       # self.btn2.bind("<Button-1>", self.btn2_del())
       self.root.mainloop()
   def ok(self):
       text = self.text1.get("1.0", "end")
       ts_text = translate(text)
       self.text2.insert('insert', ts_text)
   def ok1(self, e):
       text = self.text1.get("1.0", "end")
       ts_text = translate(text)
       self.text2.insert('insert', ts_text)
   def btn2_del(self):
       self.text1.delete("1.0", "end")
       self.text2.delete("1.0", "end")
   def btn2_del1(self, e):
       self.text1.delete("1.0", "end")
       self.text2.delete("1.0", "end")
   def cut(self, event=None):
       self.text1.event_generate("<<Cut>>")
       self.text2.event_generate("<<Cut>>")

   def copy(self, event=None):
       self.text1.event_generate("<<Copy>>")
       self.text2.event_generate("<<Copy>>")

   def paste(self, event=None):
       self.text1.event_generate('<<Paste>>')
       self.text2.event_generate('<<Paste>>')

   def popup(self, event):
       self.menu.post(event.x_root, event.y_root)
   def pack(self):
       self.text1.place(x=20, y=40, width=500, height=120)
       self.text2.place(x=20, y=200, width=500, height=120)
  • 代码有点乱哈,不过会tkinter的应该都能看懂。
  • 这里我设置了两个快捷键,ctrl+上建(up)是确定,ctrl+下键是清除。
  • 而且有右键菜单支持复制,粘贴,剪切。
  • 现在有个小缺陷,就是控件的大小不能随着窗体的变化而变化。这个很简单,大家可以自己修改参数。
  • 窗体的图标可以自己设置哈,支持png,大家尽量下载png,或icon的图标,别问为什么,问就是博主的亲身经历。
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:45:10  更:2021-10-15 11:46:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:40:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码