基于Python3编写一个GUI翻译器
作者:Carl_奕然 发布时间:2022-07-07 07:57:54
标签:Python,翻译
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()
运行结果:
3、总结
看到这里,今天的分享差不多就要结束了。
关于PySimpleGUI 的介绍,也就差不多了。
今天更多的是通过PySimpleGUI 来搞定翻译器,既锻炼了撸码能力,
有节省了每次百度翻译/google翻译花费的时间。
关于PySimpleGUI 更多功能,可以移步官网。
小鱼就不过多的介绍了。
来源:https://blog.csdn.net/wuyoudeyuer/article/details/126024644
0
投稿
猜你喜欢
- 在登陆界面中,通常,最重要的部分为登陆的Form表。一个非常棒的提升体验的做法是,在载入页面时自动聚焦到第一个提供用户输入的表单框,让用户不
- 此处收集的是一些夺人心魄的创意广告牌,巧妙的构思十分值得大家观瞻.......超人归来 superman returnsNespressos
- 说明之前下载来zip包的漫画,里面的图片都是两张一起的:但是某些漫画查看软件不支持自动分屏,看起来会比较不舒服,所以只能自己动手来切分。操作
- java JSP开发之Spring中Bean的使用在传统的Java应用中,bean的生命周期很简单。使用Java关键字new进行bean实例
- 1. 准备工作下载源码包wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.b
- 到2019年初,Python3已经更新到了Python
- 就算我们每天在叫嚷着创新经济,设计救国,我们在生活中也无处不在的看到各种设计庸俗、制作粗劣的海报、店面、户外广告、大胸美女和肌肉 * 交相辉映
- 也许已经有人发现可以这样写...CSS代码部分a.info { position:
- 本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:一、swi
- max() 方法返回其参数最大值:最接近正无穷大的值。语法以下是max()方法的语法:max( x, y, z, .... )参
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- 如何用我的国际域名做虚拟域名?config.asp<%Domain_URL = "intels.net&
- <% Function FileCounter(counter_file) Dim fs,txt,fi
- 异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET St
- python的基础练习案例——名片管理系统,一个控制台程序的案例练习,平台为pycharm2017。代码是看着python视频学的时候写的,
- 在安装了IIS以后,缺省的服务器端脚本语言被设置成VBScript。许多Web 开发团队在他们的开发环境中保持了这些缺省设置,这是不幸的,因
- 打开VB6,新建ActiveX DLL 2、在工程引用中加入Microsoft Active Server Pages Object Lib
- 载入库绘制表格我们需要用到python库中的matplotlib库import matplotlib.pyplot as plt一、折线图#
- 在实现鼠标停在某元素上,会出现提示信息,以前我们太多是采用javascript脚本代码来实现。看了怿飞的IE中伪类:hover的使用及BUG
- 最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的1