Python利用PySimpleGUI實現(xiàn)自制桌面翻譯神器
一、基本思路
基于PySimpleGUI開發(fā)桌面GUI→獲取鍵盤輸入→接入谷歌翻譯API→爬蟲獲取翻譯結果【其中涉及到正則表達式匹配翻譯結果輸出翻譯結果口翻譯完成。
二、PySimpleGUI是什么
創(chuàng)建圖形用戶界面(GUI)可能很困難,有許多不同的PythonGUI工具包可供選擇。最常提到的前三名是 Tkinter,wxPython和PyQt .但是PySimpleGUI的較新工具包,其目的是使創(chuàng)建GUI更加容易。
三、代碼分析
廢話不能多,上分析!
1、引入包
可能有點兒多,但是下面的每一個包都必須用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)絡請求的數(shù)據(jù),這里用到了字符串格式化方法需要用到三個參數(shù):
text—需要翻譯的內容、to_language—日標語音類型、text_Language—當前話言類型。
url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'
3、構建翻譯函數(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.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") while True: event, value = window.read() 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": 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("作者簡介:", "姓名:劉鎮(zhèn)鳴", "微信/電話:17734258540", "E-mail:2124619132@qq.com", title='', font=font, auto_close=1) window.close()
四、Github開源地址
Github開源地址:https://github.com/ProgramApeInn/PySimpleGUI-Root-App
到此這篇關于Python利用PySimpleGUI實現(xiàn)自制桌面翻譯神器的文章就介紹到這了,更多相關Python PySimpleGUI桌面翻譯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Conda創(chuàng)建新環(huán)境的詳細圖文教程
Anaconda功能龐大,其可以理解為一個工具,也是一個可執(zhí)行命令,下面這篇文章主要給大家介紹了關于Conda創(chuàng)建新環(huán)境的詳細圖文教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-01-01Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應的均值
這篇文章主要介紹了Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應的均值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式
這篇文章主要介紹了Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05