Python3,为了考研,我用了9.9行代码,搞出一个GUI翻译器,从此再也不用百度翻译了。

简介: Python3,为了考研,我用了9.9行代码,搞出一个GUI翻译器,从此再也不用百度翻译了。

1、引言


小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确?

小鱼:自己翻译的最准确。

小屌丝:你这… 抬杠。

小鱼:没有啊,英语自己就能翻译,还需要啥翻译软件

小屌丝:如果是俄语,意大利语,西班牙语呢?

小鱼:你这是…抬杠。

小屌丝:也没有啊,我就是觉得网页版翻译器太麻烦了。

小鱼:早说啊,我这有现成的翻译器。

小屌丝:嗯?? 你下载的是什么翻译器?

小鱼:你觉得我会下载吗?

小屌丝:嗯,确实,那就是说,你自己写了一个呗?

小鱼:你答对了。

小屌丝:那赶紧share一下啊。

小鱼:晒就晒,正好今天阳光明媚的。


2、代码实战


2.1 思路

我们写的GUI翻译器,思路:


构建url地址;

构建语言种类;

GUI界面的搭建;

触发GUI界面功能操作;

这里提示一下,我们是通过 PySimpleGUI 来进行构建的。

小屌丝:什么是PySimpleGUI呢?

小鱼:一句话,PySimpleGUI 就是GUI工具包,用于创建GUI的。

小屌丝:果然是够简单,那看代码吧。


2.2 实战

由于内容并不复杂,所以,直接上代码。

代码展示


#-*- coding: utf-8 -*-
# @Time   : 2022-07-27
# @Author : carl_DJ
import re
import html
from urllib import parse
import requests
import PySimpleGUI as sg
#url 为google自动翻译地址
url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'
'构建翻译函数'
#text:需要翻译的内容, to_language:目标语言类型, text_language:当前语言类型。
def translate(text,to_language = 'en',text_language = 'auto'):
    text = parse.quote(text)
    url1 = url % (text,to_language,text_language)
    repsonse = requests.get(url1)
    data = repsonse.text
    print(f'输出内容:{data}')
    expr = r'(?s)class="(?:t0|result-container)">(.*?)<'
    result = re.findall(expr,data)
    print(f'{result}')
    if (len(result) == 0):
        return ""
    return  html.unescape(result[0])
'GUI搭建'
#设置主题
sg.theme('bluepurple')
#设置字体
font = ("fangsong",12)
#菜单栏设置
menu = [["Help",["About","Item","Author"]]]
#语言选择(前端显示),默认只有6种,可以自己添加
value = ['汉语','英语','日语','法语','俄语','自动']
# 语言选择(后端执行时)
var = ['zh','en','ja','fr','ru','auto']
# 语言字典配置
dic = dict(zip(value,var))
#GUI布局
layout = [[sg.Menu(menu,tearoff=False)],
         [sg.Text(text='输入需要翻译内容',size=(26,1)),
          sg.Text(text='将',size=(2,1),justification='center'),
          sg.Combo(values=value,key='from',size=(10,1)),
          sg.Text(text='翻译为',size=(5,1),justification='center'),
          sg.Combo(values=value,key='to',size=(10,1))],
          [sg.Multiline(key='-IN-',size=(60,8),font=font)],
          [sg.Text(text='翻译结果',size=(30,1),font=font)],
          [sg.Multiline(key='-OUT-',size=(60,8),font=font)],
          [sg.Text(text='',size=(36,1)),
           sg.Button("翻译",size=(6,1)),
           sg.Button("清除",size=(6,1)),
           sg.Button("退出",size=(6,1))
           ]
          ]
# 设置窗口名称,窗口布局,以及图标
window = sg.Window("桌面翻译器",layout,icon='CT.ico')
'逻辑语句执行'
while True:
    #定义 事件 event, 返回值 values
    event,values = window.read()
    #点击“X”或者“退出”按钮时才退出
    if event in (None,"退出"):
        break
    #点击 翻译 按钮
    if event == "翻译":
        if values["to"] == '' or values["from"] =='':
            sg.Popup("请选择语言后再重试")
        else:
            tar = translate(values["-IN-"],dic[values["to"]],dic[values["from"]])
            window["-OUT-"].Update(tar)
    #点击 清除 按钮
    if event =="清除":
        window["-IN-"].update("")
        window["-OUT-"].update("")
    if event == "About":
        #Popup 提示弹窗,给出提示信息
        sg.Popup("使用方法:",
                 "'翻译'确认输入,并输出翻译结果",
                 "'清除'清除已有输入,清空翻译的结果",
                 "'退出'取消,并退出App",
                 title='', font = font, auto_close = 1)
    if event == "Item":
        sg.Popup("翻译类型:",
                 "'输入类型' 输入的语言类型",
                 "'输出类型' 输出的语言类型",
                 title = '', font = font, auto_close = 1)
    if event == "Author":
        sg.Popup("作者简介:",
                 "姓名:XXXXXX",
                 "Wechat:XXXXXX",
                 "E-mail:XXXXXX@qq.com", title='', font=font, auto_close=1)
        window.close()

运行结果:

image.png

image.png

3、总结


看到这里,今天的分享差不多就要结束了。

关于PySimpleGUI 的介绍,也就差不多了。

今天更多的是通过PySimpleGUI 来搞定翻译器,既锻炼了撸码能力,

有节省了每次百度翻译/google翻译花费的时间。


关于PySimpleGUI 更多功能,可以移步官网。

小鱼就不过多的介绍了。


最后,再唠叨一句:

关注小鱼,带你学习更多更有趣的python知识。


文章知识点与官方知识档案匹配,可进一步学习相关知识

Python入门技能树人工智能机器学习工具包Scikit-learn168944 人正在系统学习中

目录
相关文章
|
3月前
|
数据采集 监控 搜索推荐
基于python的百度资讯爬虫的设计与实现
本文介绍了一个基于Python语言的网络爬虫设计与实现,该爬虫利用urllib.request和BeautifulSoup库从百度新闻中抓取新闻标题、链接、内容摘要和来源信息,通过模拟浏览器行为和添加随机等待时间来规避反爬机制,为新闻数据分析和舆情监控提供支持。
102 2
|
16天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
61 7
|
1月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
50 0
|
1月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
60 0
|
2月前
|
Python
python 翻译,调用有道翻译
python 翻译,调用有道翻译
|
1月前
|
IDE API 定位技术
Python--API编程:IP地址翻译成实际的物理地址
Python--API编程:IP地址翻译成实际的物理地址
|
3月前
|
Python
告别死记硬背:掌握Python正则表达式re模块的高效应用&[面向百度编程]
Python中正则表达式的高效应用,通过内置的`re`模块,讲解了如何匹配、提取和替换字符串,并提供了相关示例代码,同时提倡通过实践来掌握正则表达式的使用,而不是仅仅依赖网络搜索。
47 1
|
3月前
|
前端开发 JavaScript 测试技术
Python中的GUI测试
【8月更文挑战第15天】本文探讨了Python中图形用户界面(GUI)测试的关键工具——Selenium与PyQt。Selenium专为Web应用测试设计,能模拟用户行为如点击和输入文本。PyQt则基于Qt框架,用于构建丰富的桌面应用程序及编写自动化测试脚本。
39 3
|
3月前
|
数据采集 存储 自然语言处理
【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现
本文介绍了百度贴吧数据采集与文本分析的设计与实现,包括自动化采集帖子数据、进行情感分析和主题分析,以及使用可视化技术展示分析结果。
|
3月前
|
存储 数据可视化 Python
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
208 1