Python利用PySimpleGUI实现自制桌面翻译神器_第1页
Python利用PySimpleGUI实现自制桌面翻译神器_第2页
Python利用PySimpleGUI实现自制桌面翻译神器_第3页
Python利用PySimpleGUI实现自制桌面翻译神器_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Python利用PySimpleGUI实现自制桌面翻译神器目录一、基本思路二、PySimpleGUI是什么三、代码分析1、引入包2、谷歌翻译网址3、构建翻译函数4、GUI构建四、Github开源地址

一、基本思路

基于PySimpleGUI开发桌面GUI获取键盘输入接入谷歌翻译API爬虫获取翻译结果【其中涉及到正则表达式匹配翻译结果输出翻译结果口翻译完成。

二、PySimpleGUI是什么

创建图形用户界面(GUI)可能很困难,有许多不同的PythonGUI工具包可供选择。最常提到的前三名是Tkinter,wxPython和PyQt.但是PySimpleGUI的较新工具包,其目的是使创建GUI更加容易。

三、代码分析

废话不能多,上分析!

1、引入包

可能有点儿多,但是下面的每一个包都必须用pip安装:

fromoptparseimportValues

importre

importhtml

fromtkinterimportfont

fromurllibimportparse

importrequests

importPySimpleGUIassg

2、谷歌翻译网址

该处使用的ur网络请求的数据,这里用到了字符串格式化方法需要用到三个参数:

text需要翻译的内容、to_language日标语音类型、text_Language当前话言类型。

url='/mq=%stl=%ssl=%s'

3、构建翻译函数

deftranslate(text,to_language="en",text_language="auto"):

text=parse.quote(text)

urll=url%(text,to_language,text_language)

response=requests.get(urll)

data=response.text

expr=r'(s)class="(:t0|result-container)"(.*)'

result=re.findall(expr,data)

print(result)

if(len(result)==0):

return""

returnhtml.unescape(result[0])

4、GUI构建

g.theme('bluepurple')

font={"fangsong",12}

menu=[["Help",["About","Item","Author"]]]

value=['汉语','英语','日语','法语','俄语','自动']

var=['zh','en','ja','fr','ru','auto']

dic=dict(zip(value,var))

layout=[[sg.Menu(menu,tearoff=False)],

[sg.Text(text='Input',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,0),font=font)],

[sg.Text(text='Output',size=(30,1))],

[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")

whileTrue:

event,value=window.read()

ifeventin(None,"退出"):

break

ifevent=="翻译":

ifValues["to"]==''orValues["from"]=='':

sg.Popup("请尝试选择语言类型后尝试,谢谢!")

else:

tar=translate(Values["-IN-"],dic[Values["to"]],dic[Values["from"]])

window["-OUT-"].Update(tar)

ifevent=="清除":

window["-IN-"].Update("")

window["-OUT-"].Update("")

ifevent=="About":

sg.Popup("使用方法:",

"'翻译'确认输入,并输出翻译结果"

"'清除'清除已有输入,清空翻译结果",

"'退出'取消,并退出App",title='',font=font,auto_close=1)

ifevent=="Item":

sg.Popup("翻译类型:",

"'输入类型'输入的语言类型",

"'输出类型',输出语言类型",title='',font=font,auto_close=1)

ifevent=="Author":

sg.Popup("作者简介:",

"姓名:刘镇鸣",

"微信/电话,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论