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

news/2024/7/19 12:34:55 标签: python, 爬虫, 开发语言, 人工智能

99行代码搞出GUI翻译器

  • 1、引言
  • 2、代码实战
    • 2.1 思路
    • 2.2 实战
  • 3、总结

1、引言

小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确?
小鱼:自己翻译的最准确。
小屌丝:你这… 抬杠。
小鱼:没有啊,英语自己就能翻译,还需要啥翻译软件
小屌丝:如果是俄语,意大利语,西班牙语呢?
小鱼:你这是…抬杠。
小屌丝:也没有啊,我就是觉得网页版翻译器太麻烦了。
小鱼:早说啊,我这有现成的翻译器。
小屌丝:嗯?? 你下载的是什么翻译器?
小鱼:你觉得我会下载吗?
小屌丝:嗯,确实,那就是说,你自己写了一个呗?
小鱼:你答对了。
小屌丝:那赶紧share一下啊。
小鱼:晒就晒,正好今天阳光明媚的。
在这里插入图片描述

2、代码实战

2.1 思路

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

  • 构建url地址;
  • 构建语言种类;
  • GUI界面的搭建;
  • 触发GUI界面功能操作;

这里提示一下,我们是通过 PySimpleGUI 来进行构建的。
小屌丝:什么是PySimpleGUI呢?
小鱼:一句话,PySimpleGUI 就是GUI工具包,用于创建GUI的。
小屌丝:果然是够简单,那看代码吧。

2.2 实战

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

python">#-*- 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 更多功能,可以移步官网。
小鱼就不过多的介绍了。

最后,再唠叨一句:
关注小鱼,带你学习更多更有趣的python知识。


http://www.niftyadmin.cn/n/1757080.html

相关文章

Python3,这应该是,配置文件最全的写法了。

配置文件写法1、引言2、配置文件写法2.1 ini2.2 json2.3 toml2.4 yaml3、总结1、引言 小鱼&#xff1a;小屌丝&#xff0c;走啊&#xff0c;出去撸串啊&#xff0c; 小屌丝&#xff1a;没时间啊&#xff0c;鱼哥 小鱼&#xff1a;嗯&#xff1f;&#xff1f;&#xff1f; 啥事…

吊打面试官系列之:移动APP UI面试必备知识点,果然路转粉。

移动APP UI面试必备知识点 1、移动APP必备知识点1.1 Android APP 内存不足时,如何获得内存?1.2 APP 测试常见问题有哪些?原因有哪些?1.3 APP 自动化测试工具有哪些,并简要介绍1.3.1APP UI测试工具:1.3.2 APP稳定性测试工具:1.3.3 APP性能测试工具:1.4 Android 与 web 测…

Python3,9分钟撸完一个电脑录屏神器,女神说今晚要给我加鸡腿。

电脑录屏神器1、引言2、代码实战2.1 编写思路2.2 代码示例3、总结1、引言 女神&#xff1a;鱼哥&#xff0c;忙吗&#xff1f; 小鱼&#xff1a;嗯嗯&#xff0c; 忙&#xff0c; 哦不 &#xff0c; 不忙不忙。 女神&#xff1a;鱼哥&#xff0c;那能不能帮我个忙&#xff1f;…

吊打面试官系列之:什么是 认证、鉴权、授权、权限控制,这一篇必须安排的明明白白。

鉴权方案 1、引言2、鉴权方案2.1 认证2.2 鉴权2.3 授权2.4 权限控制2.5 认证,鉴权,授权及权限控制的关系3、总结1、引言 小屌丝:鱼哥,啥是认证,啥是鉴权? 小鱼:嗯?? 做了这么多年码农,这个还不知道呢? 小屌丝:唉~~ 没整明白啊,能不能给我讲一讲啊 小鱼:好吧,正…

Python3,自动识别图片文字,这个库,我爱了。

自动识别图片上的文字1、引言2、Cnocr2.1 安装2.2 代码示例3、Pytesseract3.1 安装3.1 代码示例4、总结1、引言 小鱼&#xff1a;小屌丝&#xff0c;你在干啥呢&#xff1f; 小屌丝&#xff1a;我女神给我的任务啊&#xff0c;把图片上的文字都给写下来。 小鱼&#xff1a;这图…

吊打面试官系列之:进阶必会Docker命令大全,怎么跟我想象的不一样,简直太easy了。

Docker必会操作命令 1、引言2、基本命令3、 镜像命令3.1 基本操作3.1.1 查看本地镜像3.1.2 下载镜像3.1.3 删除non镜像3.1.4 制作镜像3.2 拉取最新镜像3.3 发布镜像4、容器命令4.1 基本命令4.2 查看容器日志4.2.1 基本命令4.2.1 查看指定时间后的日志,只显示最后100行4.2.2 查…

深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。

任务管理器1、引言2、任务管理器2.1 打开方式2.2 介绍2.2.1 定义2.2.2 进程2.2.3 性能2.2.4 应用历史记录2.2.5 启动2.2.6 用户2.2.7 详细信息2.2.8 服务3、总结1、引言 关于Windows系统性能监控的前两篇 《Windows系统性能监控(一) 性能监视器介绍及使用》《Windows系统性能…

Sql去重查询数据

最近在工作过程中&#xff0c;面试过程中&#xff0c; 部分求职者或者同事&#xff0c;对sql怎么去重查询&#xff0c;不是太熟练 今天下午忙里偷闲&#xff0c; 整理了一下 其实sql基本的查询 &#xff0c;还是蛮有意思&#xff0c; 下面是我大致整理的几种去重查询 1.…