Python利用PySimpleGUI實(shí)現(xiàn)自制桌面翻譯神器
一、基本思路
基于PySimpleGUI開(kāi)發(fā)桌面GUI→獲取鍵盤(pán)輸入→接入谷歌翻譯API→爬蟲(chóng)獲取翻譯結(jié)果【其中涉及到正則表達(dá)式匹配翻譯結(jié)果輸出翻譯結(jié)果口翻譯完成。
二、PySimpleGUI是什么
創(chuàng)建圖形用戶(hù)界面(GUI)可能很困難,有許多不同的PythonGUI工具包可供選擇。最常提到的前三名是 Tkinter,wxPython和PyQt .但是PySimpleGUI的較新工具包,其目的是使創(chuàng)建GUI更加容易。
三、代碼分析
廢話(huà)不能多,上分析!
1、引入包
可能有點(diǎn)兒多,但是下面的每一個(gè)包都必須用pip安裝:
from optparse import Values import re import html from tkinter import font from urllib import parse import requests import PySimpleGUI as sg
2、谷歌翻譯網(wǎng)址
該處使用的ur網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù),這里用到了字符串格式化方法需要用到三個(gè)參數(shù):
text—需要翻譯的內(nèi)容、to_language—日標(biāo)語(yǔ)音類(lèi)型、text_Language—當(dāng)前話(huà)言類(lèi)型。
url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'
3、構(gòu)建翻譯函數(shù)
def translate(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 ""
return html.unescape(result[0])
4、GUI構(gòu)建
g.theme('bluepurple')
font = {"fangsong", 12}
menu = [["Help", ["About", "Item", "Author"]]]
value = ['漢語(yǔ)', '英語(yǔ)', '日語(yǔ)', '法語(yǔ)', '俄語(yǔ)', '自動(dòng)']
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")
while True:
event, value = window.read()
if event in (None, "退出"):
break
if event == "翻譯":
if Values["to"] == '' or Values["from"] == '':
sg.Popup("請(qǐng)嘗試選擇語(yǔ)言類(lèi)型后嘗試,謝謝!")
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":
sg.Popup("使用方法:",
"'翻譯'確認(rèn)輸入,并輸出翻譯結(jié)果"
"'清除'清除已有輸入,清空翻譯結(jié)果",
"'退出'取消,并退出App", title='', font=font, auto_close=1)
if event == "Item":
sg.Popup("翻譯類(lèi)型:",
"'輸入類(lèi)型'輸入的語(yǔ)言類(lèi)型",
"'輸出類(lèi)型',輸出語(yǔ)言類(lèi)型", title='', font=font, auto_close=1)
if event == "Author":
sg.Popup("作者簡(jiǎn)介:",
"姓名:劉鎮(zhèn)鳴",
"微信/電話(huà):17734258540",
"E-mail:2124619132@qq.com", title='', font=font, auto_close=1)
window.close()四、Github開(kāi)源地址
Github開(kāi)源地址:https://github.com/ProgramApeInn/PySimpleGUI-Root-App
到此這篇關(guān)于Python利用PySimpleGUI實(shí)現(xiàn)自制桌面翻譯神器的文章就介紹到這了,更多相關(guān)Python PySimpleGUI桌面翻譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化運(yùn)維華為設(shè)備
本文介紹了如何使用Python實(shí)現(xiàn)華為設(shè)備的網(wǎng)絡(luò)自動(dòng)化運(yùn)維,包括環(huán)境配置、設(shè)備配置、功能模塊實(shí)現(xiàn)和SFTP文件傳輸測(cè)試2024-11-11
python使用pygame實(shí)現(xiàn)笑臉乒乓球彈珠球游戲
這篇文章主要為大家詳細(xì)介紹了python使用pygame實(shí)現(xiàn)笑臉乒乓球彈珠球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
使用python搭建代理IP池實(shí)現(xiàn)接口設(shè)置與整體調(diào)度
在網(wǎng)絡(luò)爬蟲(chóng)中,代理IP池是一個(gè)非常重要的組件,由于許多網(wǎng)站對(duì)單個(gè)IP的請(qǐng)求有限制,因此,我們需要一個(gè)代理IP池,在本文中,我們將使用Python來(lái)構(gòu)建一個(gè)代理IP池,然后,我們將使用這個(gè)代理IP池來(lái)訪(fǎng)問(wèn)我們需要的數(shù)據(jù),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2023-12-12
寶塔部署django項(xiàng)目的實(shí)現(xiàn)步驟(圖文教程)
本文主要介紹了寶塔部署django項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python 利用PyAutoGUI快速構(gòu)建自動(dòng)化操作腳本
我們經(jīng)常遇到需要進(jìn)行大量重復(fù)操作的時(shí)候,比如:網(wǎng)頁(yè)上填表,對(duì) web 版本 OA 進(jìn)行操作,自動(dòng)化測(cè)試或者給新系統(tǒng)首次添加數(shù)據(jù)等,今天就利用PyAutoGUI構(gòu)建自動(dòng)化操作腳本完成這些重復(fù)的需求2021-05-05

