热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python+Tkinter实现图形化机器翻译

1、Tkinter的定义Tkinter:Tkinter模块(Tk接口)是Python的标准TkGUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使

1、Tkinter 的定义

Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

2、Python 如何实现图形化机器翻译

from tkinter import *
from tkinter import messagebox
import http.client
import hashlib
import json
import urllib.parse
import random# 创建窗口
root = Tk()
# 标题
root.title('汉英译')
# 窗口大小
root.geometry('370x200')
# 获取屏幕宽
s_with = root.winfo_screenwidth()
# 获取屏幕高度
s_height = root.winfo_screenheight()# 计算页面打开在屏幕中央的位置
l_x = str(round((s_with - 370) / 2))
l_y = str(round((s_height - 100) / 2))
root.geometry('+' + l_x + '+' + l_y)# add by 0730
def setRadio1():root.title("汉译英")print(v.get())
def setRadio2():root.title("英译汉")print(v.get())#可以通过传入特定参数直接和一个程序变量绑定, 这些参数包括: variable, textvariable, onvalue, offvalue, value.
v = IntVar() #保存一个整型变量, 默认值为0
radio1=Radiobutton(root,text="汉译英",variable=v,value=1,command=setRadio1)
radio1.grid()
# 输入控件
entry = Entry(root, font=('微软雅黑', 15))
# entry.grid(row=0, column=1)
radio2=Radiobutton(root,text="英译汉",variable=v,value=2,command=setRadio2)
radio2.grid()
entry = Entry(root, font=('微软雅黑', 15))
# entry.grid(row=0, column=2)

# 第一列标签
lable = Label(root, text='请输入内容:')
# 定位布局 grid网格式布局 pack包 place位置
lable.grid()
# 输入控件
entry = Entry(root, font=('微软雅黑', 15))
entry.grid(row=2, column=1)
res = StringVar() # 保存一个 string 类型变量, 默认值为""# 翻译结果标签
lable1 = Label(root, text='翻译结果:')
lable1.grid(row=3, column=0)
# 翻译结果输入框
entry1 = Entry(root, font=('微软雅黑', 15), textvariable=res)
entry1.grid(row=3, column=1)

def baidu_translate():#获取界面输入的内容content = entry.get().strip()# content = content.strip()# 判断输入翻译的内容是否为空if content == '':messagebox.showinfo('提示', '请输入翻译内容')else:appid = '20151113000005349'secretKey = 'osubCEzlGjzvw8qdQc41'# httpClient = Nonemyurl = '/api/trans/vip/translate'q = contentfromLang = 'zh'  # 源语言toLang = 'en'  # 翻译后的语言salt = random.randint(32768, 65536)sign = appid + q + str(salt) + secretKeysign = hashlib.md5(sign.encode()).hexdigest()#作为十六进制数据字符串值if(v.get()==1):myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + signelse:myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + toLang + '&to=' + fromLang + '&salt=' + str(salt) + '&sign=' + signtry:httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')httpClient.request('GET', myurl)response = httpClient.getresponse()# response是HTTPResponse对象jsonResponse = response.read().decode("utf-8")  # 获得返回的结果,结果为json格式js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构print(js)dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果print(dst)  # 打印结果# return dstres.set(dst)except Exception as e:print('err:' + str(e))finally:if httpClient:httpClient.close()

# 按钮
button = Button(root, text='翻译', width='10', command=baidu_translate)
# sticky 对齐方式 N S W E 上下左右
button.grid(row=4, column=0, sticky=W)# 退出按钮 command是点击事件的方法
exit_button = Button(root, text='退出', width='10', command=root.quit)
exit_button.grid(row=4, column=1, sticky=E)# 显示窗口 消息循环 接收对窗口的所有操作的消息
# 主事件循环
root.mainloop()

3、运行效果图展示

图片

图片

欢迎关注【无量测试之道】公众号,回复【领取资源】
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。

备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

在这里插入图片描述
添加关注,让我们一起共同成长! 


推荐阅读
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
author-avatar
吕贞吟明辉碧瑜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有