您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python使用tkinter制作在线翻译软件

51自学网 2021-10-30 22:55:35
  python
这篇教程Python使用tkinter制作在线翻译软件写得很实用,希望能帮到您。

tkinter的功能是如此强大,竟然还能做翻译软件。当然是在线的,我发现有一个quicktranslate模块,可以提供在线翻译功能,相当于提供了一个翻译的接口,利用它就可以制作在线翻译软件了。下面是代码,分享给大家。

注意要首先 pip install quicktranslate

#-*- coding:utf-8 -*-import tkinter as tk  #使用Tkinter前需要先导入from tkinter import messagebox,ttkimport datetime,os,time,re,requestsfrom quicktranslate import get_translate_baidu,get_translate_youdaoclass 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))  #双击触发单词翻译 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)) #双击触发单词翻译 如果是中译英 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()

这是效果,双击单词可自动查词,段落翻译默认用有道,不行用谷歌;单词翻译默认百度,不行用有道。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


Python中使用Selenium环境安装的方法步骤
matplotlib绘制正余弦曲线图的实现
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。