基于Python3編寫一個GUI翻譯器
1、引言
小屌絲:魚哥,你說百度翻譯的準(zhǔn)確,還是google翻譯的準(zhǔn)確?
小魚:自己翻譯的最準(zhǔn)確。
小屌絲:你這… 抬杠。
小魚:沒有啊,英語自己就能翻譯,還需要啥翻譯軟件
小屌絲:如果是俄語,意大利語,西班牙語呢?
小魚:你這是…抬杠。
小屌絲:也沒有啊,我就是覺得網(wǎng)頁版翻譯器太麻煩了。
小魚:早說啊,我這有現(xiàn)成的翻譯器。
小屌絲:嗯?? 你下載的是什么翻譯器?
小魚:你覺得我會下載嗎?
小屌絲:嗯,確實,那就是說,你自己寫了一個唄?
小魚:你答對了。
小屌絲:那趕緊share一下啊。
小魚:曬就曬,正好今天陽光明媚的。
2、代碼實戰(zhàn)
2.1 思路
我們寫的GUI翻譯器,思路:
構(gòu)建url地址;
構(gòu)建語言種類;
GUI界面的搭建;
觸發(fā)GUI界面功能操作;
這里提示一下,我們是通過 PySimpleGUI 來進行構(gòu)建的。
小屌絲:什么是PySimpleGUI呢?
小魚:一句話,PySimpleGUI 就是GUI工具包,用于創(chuàng)建GUI的。
小屌絲:果然是夠簡單,那看代碼吧。
2.2 實戰(zhàn)
由于內(nèi)容并不復(fù)雜,所以,直接上代碼。
代碼展示
#-*- coding: utf-8 -*- # @Time : 2022-07-27 # @Author : carl_DJ import re import html from urllib import parse import requests import PySimpleGUI as sg '構(gòu)建爬蟲' #url 為google自動翻譯地址 url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s' '構(gòu)建翻譯函數(shù)' #text:需要翻譯的內(nèi)容, to_language:目標(biāo)語言類型, text_language:當(dāng)前語言類型。 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'輸出內(nèi)容:{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搭建' #設(shè)置主題 sg.theme('bluepurple') #設(shè)置字體 font = ("fangsong",12) #菜單欄設(shè)置 menu = [["Help",["About","Item","Author"]]] #語言選擇(前端顯示),默認(rèn)只有6種,可以自己添加 value = ['漢語','英語','日語','法語','俄語','自動'] # 語言選擇(后端執(zhí)行時) var = ['zh','en','ja','fr','ru','auto'] # 語言字典配置 dic = dict(zip(value,var)) #GUI布局 layout = [[sg.Menu(menu,tearoff=False)], [sg.Text(text='輸入需要翻譯內(nèi)容',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='翻譯結(jié)果',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)) ] ] # 設(shè)置窗口名稱,窗口布局,以及圖標(biāo) window = sg.Window("桌面翻譯器",layout,icon='CT.ico') '邏輯語句執(zhí)行' 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("使用方法:", "'翻譯'確認(rèn)輸入,并輸出翻譯結(jié)果", "'清除'清除已有輸入,清空翻譯的結(jié)果", "'退出'取消,并退出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()
運行結(jié)果:
3、總結(jié)
看到這里,今天的分享差不多就要結(jié)束了。
關(guān)于PySimpleGUI 的介紹,也就差不多了。
今天更多的是通過PySimpleGUI 來搞定翻譯器,既鍛煉了擼碼能力,
有節(jié)省了每次百度翻譯/google翻譯花費的時間。
關(guān)于PySimpleGUI 更多功能,可以移步官網(wǎng)。
小魚就不過多的介紹了。
到此這篇關(guān)于基于Python3編寫一個GUI翻譯器的文章就介紹到這了,更多相關(guān)Python翻譯器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)的生成隨機迷宮算法核心代碼分享(含游戲完整代碼)
這篇文章主要介紹了python實現(xiàn)的隨機迷宮生成算法核心代碼分享,本文包含一個簡單迷宮游戲完整代碼,需要的朋友可以參考下2014-07-07Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例
在進行軟件測試的過程中,經(jīng)常會需要準(zhǔn)備一批數(shù)據(jù),本文主要介紹了Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-12-12python中可以發(fā)生異常自動重試庫retrying
這篇文章主要介紹了python中可以發(fā)生異常自動重試庫retrying,retrying是一個極簡的使用Python編寫的庫,主題更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-06-06Python破解BiliBili滑塊驗證碼的思路詳解(完美避開人機識別)
這篇文章主要介紹了Python破解BiliBili滑塊驗證碼的思路,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02