您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在Python中使用Tkinter制作一個(gè)翻譯軟件,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,其最初的設(shè)計(jì)是用于編寫(xiě)自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開(kāi)發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
實(shí)現(xiàn)方法
實(shí)現(xiàn)一鍵翻譯最簡(jiǎn)單的方式就是爬蟲(chóng),我們只需將要翻譯的內(nèi)容傳入,然后將翻譯的結(jié)果爬取下來(lái)呈現(xiàn)給用戶(hù)即可。在本文中,我們選擇的網(wǎng)站是有道翻譯。
下圖這個(gè)界面,你在左邊輸入文字,那么瀏覽器會(huì)把你輸入的信息傳輸給服務(wù)器。再在右側(cè)返回對(duì)應(yīng)翻譯結(jié)果。這就是一個(gè)典型的Post操作。
由于之前我們的爬取都是采用的Get方式來(lái)獲取數(shù)據(jù)的,并沒(méi)有用過(guò)Post方式,所以這里簡(jiǎn)單給大家說(shuō)一下怎么用python發(fā)送Post請(qǐng)求:
發(fā)送post請(qǐng)求分為表單類(lèi)(x-www-form-urlencoded)和json(application/json)格式,data參數(shù)支持字典格式和字符串格式,建議使用字典格式,在使用json.dumps()方法把data轉(zhuǎn)換為合法的json格式字符串,或者將data參數(shù)賦值給post方法的json參數(shù),data以字符串格式傳輸需要注意的事項(xiàng):
必須是json格式字符串,必須用雙引號(hào),k-v之家必須有逗號(hào),布爾值必須是小寫(xiě)的true/false
不能有中文,直接傳字符串不會(huì)自動(dòng)編碼
我們還是按F12打開(kāi)開(kāi)發(fā)者模式,發(fā)現(xiàn)傳入的數(shù)據(jù)并沒(méi)有在原網(wǎng)頁(yè)中出現(xiàn),所以判斷這是一個(gè)使用異步刷新的網(wǎng)站,所以該URL,應(yīng)該去XHR中尋找,在XHR中發(fā)現(xiàn)了我們傳入的數(shù)據(jù),如圖:
一切準(zhǔn)備就緒了,可以開(kāi)始書(shū)寫(xiě)代碼了,爬蟲(chóng)部分代碼如下:
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' #使用post需要一個(gè)鏈接 data={'i': word, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTIME', 'typoResult': 'false'} #將需要post的內(nèi)容,以字典的形式記錄在data內(nèi)。 r = requests.post(url, data) #post需要輸入兩個(gè)參數(shù),一個(gè)是剛才的鏈接,一個(gè)是data,返回的是一個(gè)Response對(duì)象 answer=json.loads(r.text) #你可以自己嘗試print一下r.text的內(nèi)容,然后再閱讀下面的代碼。 result = answer['translateResult'][0][0]['tgt'] return result
Tkinter是Python的標(biāo)準(zhǔn)GUI庫(kù)。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。
由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫(kù)、而且 IDLE 也是用 Tkinter 編寫(xiě)而成、對(duì)于簡(jiǎn)單的圖形界面 Tkinter 能應(yīng)付自如。
代碼如下:
self.window = Tk() self.fanyi = YouDaoFanyi() self.window.title(u'翻譯器') #設(shè)置窗口大小和位置 self.window.geometry('310x370+500+300') self.window.minsize(310,370) self.window.maxsize(310,370) #創(chuàng)建一個(gè)文本框 self.result_text1 = Text(self.window,background = 'azure') self.result_text1.place(x = 10,y = 5,width = 285,height = 155) self.result_text1.bind("<Key-Return>",self.submit1) #創(chuàng)建一個(gè)按鈕 #為按鈕添加事件 self.submit_btn = Button(self.window,text=u'翻譯',command=self.submit) self.submit_btn.place(x=205,y=165,width=35,height=25) self.submit_btn2 = Button(self.window,text=u'清空',command = self.clean) self.submit_btn2.place(x=250,y=165,width=35,height=25) #翻譯結(jié)果標(biāo)題 self.title_label = Label(self.window,text=u'翻譯結(jié)果:') self.title_label.place(x=10,y=165) #翻譯結(jié)果 self.result_text = Text(self.window,background = 'light cyan') self.result_text.place(x = 10,y = 190,width = 285,height = 165)
來(lái)看看效果圖:
雖然有一些單調(diào),但是能做到這樣還是很不錯(cuò)的。
做好程序后,可以將其打包,這樣以后不管電腦上有沒(méi)有python環(huán)境,我們都可以使用這個(gè)軟件來(lái)進(jìn)行翻譯,下面來(lái)教大家一個(gè)簡(jiǎn)單的python打包方法。
首先安裝PyInstaller第三方庫(kù)。
pip install Pylnstaller
然后使用cmd,切換到需要打包的python程序的存儲(chǔ)目錄,然后輸入該語(yǔ)句即可完成打包。
pyinstaller -F -w xxx.py
上述內(nèi)容就是怎么在Python中使用Tkinter制作一個(gè)翻譯軟件,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。