最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用tkinter制作在線翻譯軟件

 更新時間:2021年02月22日 11:39:51   作者:chaodaibing  
這篇文章主要為大家詳細介紹了Python使用tkinter制作在線翻譯軟件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

tkinter的功能是如此強大,竟然還能做翻譯軟件。當然是在線的,我發(fā)現有一個quicktranslate模塊,可以提供在線翻譯功能,相當于提供了一個翻譯的接口,利用它就可以制作在線翻譯軟件了。下面是代碼,分享給大家。

注意要首先 pip install quicktranslate

#-*- coding:utf-8 -*-
import tkinter as tk  #使用Tkinter前需要先導入
from tkinter import messagebox,ttk
import datetime,os,time,re,requests
from quicktranslate import get_translate_baidu,get_translate_youdao

class MY_GUI(tk.Tk):
 #初始化
 def __init__(self):
 super().__init__()
 self.set_window()
 self.set_frame()
 self.set_body()
 #設置窗口
 def set_window(self):
 self.title("文本翻譯工具v1.0")   #窗口名
 w_width=800        #工具寬度
 w_height=600       #工具高度 
 scn_width=self.maxsize()[0]    #屏幕寬度
 x_point=(scn_width-w_width)//2   #取點讓工具居中
 self.geometry('%dx%d+%d+%d' %(w_width,w_height,x_point,100))
 #設置框架
 def set_frame(self):
 self.frame1=tk.Frame(self,pady=15,padx=15)
 self.frame1.grid(row=0,column=0,sticky='w')
 self.frame2=tk.Frame(self,pady=15,padx=15)
 self.frame2.grid(row=1,column=0,sticky='w')
 self.frame3=tk.Frame(self,pady=15,padx=15)
 self.frame3.grid(row=2,column=0,sticky='w')
 #設置組件
 def set_body(self):
 ttk.Label(self.frame1,text='輸入要翻譯的內容:').grid(row=0,column=0,sticky='w')
 ybar=ttk.Scrollbar(self.frame1,orient='vertical')
 textarea=tk.Text(self.frame1,width=100,height=12,yscrollcommand=ybar.set)
 ybar['command']=textarea.yview
 textarea.grid(row=1,column=0,columnspan=2)
 ybar.grid(row=1,column=2,sticky='ns')
 textarea.bind("<Double-Button-1>",lambda event:self.getword(event,textarea))  #雙擊觸發(fā)單詞翻譯
 ttk.Button(self.frame1,text='點擊翻譯',command=lambda:self.translator(textarea.get(1.0,'end'))).grid(row=2,column=0,sticky='w')
 ttk.Button(self.frame1,text='清空',command=lambda:self.clear(textarea)).grid(row=2,column=1,sticky='w')
 #功能函數
 def clear(self,textarea):    #清空文本框
 textarea.delete(1.0,'end')

 def is_cn(self,uchar):
 """判斷一個unicode是否是漢字"""
 if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
  return True
 else:
  return False

 def filterchar(self,char):   #過濾字母
 word=filter(str.isalpha, char)
 word=''.join(list(word))
 return word

 def getword(self,event,textarea):  #單詞翻譯
 place=textarea.index('current')
 row=int(place.split('.')[0])  #第幾行
 col=int(place.split('.')[1])  #第幾列
 col_start=col-15
 col_end=col+15
 part1=textarea.get(str(row)+'.'+str(col_start),str(row)+'.'+str(col)).split()[-1]
 part2=textarea.get(str(row)+'.'+str(col),str(row)+'.'+str(col_end)).split()[0]
 word_f=self.filterchar(part1+part2)
 word_t=get_translate_baidu(word_f)     #百度翻譯
 if(word_t=='wrong!'):
  word_t=get_translate_youdao(word_f)    #百度不行就用有道翻譯
 textarea=tk.Text(self.frame3,width=100,height=8) #第三個框架添加文本框
 textarea.grid(row=0,column=0) 
 textarea.delete(1.0,'end')
 textarea.insert(1.0,word_f+':\n'+word_t)   #文本框填入翻譯結果
 #生詞寫入生詞本
 if(word_t!='wrong!'):
  with open('word.txt','a') as f:
  f.write(word_f+' : '+word_t+"\n")

 def translator(self,content):    #段落翻譯
 test_url='http://youdao.com'
 try:
  requests.get(test_url,timeout=2)
 except:
  messagebox.showerror('警告','沒有聯網')
 if(self.is_cn(content)):    #如果輸入的是中文,那就是中譯英,要用英文句號
  sep="."
 else:
  sep="。"
 contents=content.split('\n')   #段落分割
 strs=""
 for paragraph in contents:
  if(paragraph):
  sentences=paragraph.split('.')  #句子
  for sentence in sentences:
   if(sentence):
   res=get_translate_youdao(sentence)  #有道翻譯
   if(res=='wrong!'):
    res=get_translate_google(sentence) #有道不行就用谷歌翻譯
   strs+=res+sep     
  strs+="\n"
 ybar=ttk.Scrollbar(self.frame2,orient='vertical')
 textarea=tk.Text(self.frame2,width=100,height=12,yscrollcommand=ybar.set)  #第二個框架添加文本框
 textarea.bind("<Double-Button-1>",lambda event:self.getword(event,textarea)) #雙擊觸發(fā)單詞翻譯 如果是中譯英
 ybar['command']=textarea.yview
 textarea.grid(row=0,column=0)
 textarea.delete(1.0,'end')
 textarea.insert(1.0,strs)              #文本框填入翻譯結果
 ybar.grid(row=0,column=1,sticky='ns')

app=MY_GUI()
app.mainloop()

這是效果,雙擊單詞可自動查詞,段落翻譯默認用有道,不行用谷歌;單詞翻譯默認百度,不行用有道。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python?plotly設置go.Scatter為實線實例

    python?plotly設置go.Scatter為實線實例

    這篇文章主要為大家介紹了python?plotly設置go.Scatter為實線線條的樣式實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 深入了解Python中運算符函數的使用

    深入了解Python中運算符函數的使用

    Python?在“運算符”模塊下為許多數學、邏輯、關系、按位等操作預定義了函數。本文介紹了一些基本功能,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-09-09
  • Python?局部變量global詳解

    Python?局部變量global詳解

    這篇文章主要介紹了Python?局部變量global詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python提取支付寶和微信支付二維碼的示例代碼

    Python提取支付寶和微信支付二維碼的示例代碼

    本文將教你使用 Python 的圖像處理庫 pillow,輕松批量提取圖片中間的方形二維碼部分。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • django第一個項目127.0.0.1:8000不能訪問的解決方案詳析

    django第一個項目127.0.0.1:8000不能訪問的解決方案詳析

    django項目服務啟動后無法通過127.0.0.1訪問,下面這篇文章主要給大家介紹了關于django第一個項目127.0.0.1:8000不能訪問的解決方案,需要的朋友可以參考下
    2022-10-10
  • python采用getopt解析命令行輸入參數實例

    python采用getopt解析命令行輸入參數實例

    這篇文章主要介紹了python采用getopt解析命令行輸入參數實例,非常具有實用價值,需要的朋友可以參考下
    2014-09-09
  • PyTorch實現聯邦學習的基本算法FedAvg

    PyTorch實現聯邦學習的基本算法FedAvg

    這篇文章主要為大家介紹了PyTorch實現聯邦學習的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • django使用xadmin的全局配置詳解

    django使用xadmin的全局配置詳解

    今天小編就為大家分享一篇django使用xadmin的全局配置詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python3中的真除和Floor除法用法分析

    Python3中的真除和Floor除法用法分析

    這篇文章主要介紹了Python3中的真除和Floor除法用法,結合實例形式分析了真除與Floor除法的區(qū)別與使用技巧,需要的朋友可以參考下
    2016-03-03
  • 在Qt中正確的設置窗體的背景圖片的幾種方法總結

    在Qt中正確的設置窗體的背景圖片的幾種方法總結

    今天小編就為大家分享一篇在Qt中正確的設置窗體的背景圖片的幾種方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

库车县| 岳池县| 临沧市| 乌拉特前旗| 清水县| 吴堡县| 宣汉县| 格尔木市| 平定县| 墨江| 东乡县| 苍梧县| 靖西县| 固安县| 玛纳斯县| 兰西县| 乳山市| 确山县| 定日县| 聂拉木县| 孙吴县| 肥乡县| 惠来县| 深泽县| 竹北市| 龙井市| 依兰县| 茶陵县| 兴业县| 乐昌市| 马龙县| 普兰店市| 谷城县| 南投县| 象山县| 勃利县| 泌阳县| 荥经县| 茌平县| 平阳县| 汕头市|