python例子:翻译器(简单)

作品介绍

作品名称:翻译器

开发环境:PyCharm 2023.3.4 + python3.7

用到的库:PyQt5、translate、sys

作品简介:“输入内容”输入要翻译的中文内容,“选择语言”选择要翻译的语种,最后点击“开始翻译”,最终结果显示在“翻译结果”。

实现过程

一 阅读器UI设计

1、安装所需的第三方模块PyQt5和pyqt5-tools(文件-设置),直接使用右边“+”安装就可以,如无法安装,可在命令界面使用“pip install XXX”进行安装(注意使用的是pycharm2018版本);

2、配置工具QtDesigner(设计器)和pyUIC(转化为py代码,Arguments设置“-m PyQt5.uic.pyuic F i l e N a m e FileName FileName -o F i l e N a m e W i t h o u t E x t e n s i o n FileNameWithoutExtension FileNameWithoutExtension.py”);

3、运行工具QtDesigner(图1)后,利用QtDesigner工具箱设计出图2的界面效果(所需要的控件可查看右边区域),保存效果为文件translateFunction.ui;

4、对文件translateFunction.ui执行pyUIC(ui转化为py代码),执行完生成文件translateFunction.py。

二、代码设计

1、添加内置模块(下面代码使用)和主方法(用于运行后弹出阅读器);

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from translate import Translator
# 主方法(添加代码)
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()  # 创建窗体对象ui = Ui_mainWindow()  # 创建PyQt设计的窗体对象ui.setupUi(MainWindow)  # 调用PyQt窗体的方法对窗体对象进行初始化设置MainWindow.show()  # 显示窗体sys.exit(app.exec_())  # 程序关闭时退出进程

2、函数retranslateUi添加代码,用来点击开始翻译;

self.pushButton.clicked.connect(self.translateData)  # 点击开始翻译

3、定义函数translateData,用来实现翻译功能;

# 翻译方法
def translateData(self):languages = ['en', 'es', 'fr', 'de', 'it', 'pt', 'ru', 'zh-CN', 'zh-TW', 'ja', 'ko']language = languages[self.comboBox.currentIndex()] # 获取选择的语言translator = Translator(from_lang="zh", to_lang=language)translated_text = translator.translate(self.inputEdit.toPlainText()) # 开始翻译self.outputEdit.setPlainText(translated_text)

4、全部代码如下。

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from translate import Translatorclass Ui_mainWindow(object):def setupUi(self, mainWindow):mainWindow.setObjectName("mainWindow")mainWindow.resize(637, 442)self.centralwidget = QtWidgets.QWidget(mainWindow)self.centralwidget.setObjectName("centralwidget")self.inputName = QtWidgets.QLabel(self.centralwidget)self.inputName.setGeometry(QtCore.QRect(100, 100, 54, 12))self.inputName.setObjectName("inputName")self.outputName = QtWidgets.QLabel(self.centralwidget)self.outputName.setGeometry(QtCore.QRect(100, 310, 54, 12))self.outputName.setObjectName("outputName")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(437, 195, 75, 30))self.pushButton.setObjectName("pushButton")self.inputEdit = QtWidgets.QPlainTextEdit(self.centralwidget)self.inputEdit.setGeometry(QtCore.QRect(170, 30, 341, 151))self.inputEdit.setPlainText("")self.inputEdit.setObjectName("inputEdit")self.outputEdit = QtWidgets.QPlainTextEdit(self.centralwidget)self.outputEdit.setGeometry(QtCore.QRect(170, 240, 341, 151))self.outputEdit.setPlainText("")self.outputEdit.setObjectName("outputEdit")self.selectLanguage = QtWidgets.QLabel(self.centralwidget)self.selectLanguage.setGeometry(QtCore.QRect(100, 200, 55, 20))self.selectLanguage.setObjectName("selectLanguage")self.comboBox = QtWidgets.QComboBox(self.centralwidget)self.comboBox.setGeometry(QtCore.QRect(170, 195, 251, 30))self.comboBox.setObjectName("comboBox")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")self.comboBox.addItem("")mainWindow.setCentralWidget(self.centralwidget)self.statusbar = QtWidgets.QStatusBar(mainWindow)self.statusbar.setObjectName("statusbar")mainWindow.setStatusBar(self.statusbar)self.retranslateUi(mainWindow)QtCore.QMetaObject.connectSlotsByName(mainWindow)def retranslateUi(self, mainWindow):_translate = QtCore.QCoreApplication.translatemainWindow.setWindowTitle(_translate("mainWindow", "翻译器"))self.inputName.setText(_translate("mainWindow", "输入内容:"))self.outputName.setText(_translate("mainWindow", "翻译结果:"))self.pushButton.setText(_translate("mainWindow", "开始翻译"))self.selectLanguage.setText(_translate("mainWindow", "选择语言:"))self.comboBox.setItemText(0, _translate("mainWindow", "英语"))self.comboBox.setItemText(1, _translate("mainWindow", "西班牙语"))self.comboBox.setItemText(2, _translate("mainWindow", "法语"))self.comboBox.setItemText(3, _translate("mainWindow", "德语"))self.comboBox.setItemText(4, _translate("mainWindow", "意大利语"))self.comboBox.setItemText(5, _translate("mainWindow", "葡萄牙语"))self.comboBox.setItemText(6, _translate("mainWindow", "俄语"))self.comboBox.setItemText(7, _translate("mainWindow", "简体中文"))self.comboBox.setItemText(8, _translate("mainWindow", "繁体中文"))self.comboBox.setItemText(9, _translate("mainWindow", "日语"))self.comboBox.setItemText(10, _translate("mainWindow", "韩语"))# 添加代码self.pushButton.clicked.connect(self.translateData)  # 点击开始翻译# 翻译方法def translateData(self):languages = ['en', 'es', 'fr', 'de', 'it', 'pt', 'ru', 'zh-CN', 'zh-TW', 'ja', 'ko']language = languages[self.comboBox.currentIndex()] # 获取选择的语言translator = Translator(from_lang="zh", to_lang=language)translated_text = translator.translate(self.inputEdit.toPlainText()) # 开始翻译self.outputEdit.setPlainText(translated_text)# 主方法(添加代码)
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()  # 创建窗体对象ui = Ui_mainWindow()  # 创建PyQt设计的窗体对象ui.setupUi(MainWindow)  # 调用PyQt窗体的方法对窗体对象进行初始化设置MainWindow.show()  # 显示窗体sys.exit(app.exec_())  # 程序关闭时退出进程

Python入门学习资料

1.Python系统学习路线图

首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

2.Python必备开发工具

3.看视频进行系统学习

先在网上康康达人分享的视频、干货,通俗易懂,形成初始概念;你会发现博主们在进阶成大神之前他们的学习途径有哪些,找到适合自己风格的课程;

不过这样学习技术比较杂乱,所以通过更加系统的视频来学习,效果更好,也更全面。

4.实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

↓↓↓↓
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型中的Lang chain是什么意思

LangChain 是一个开源框架,旨在简化构建和操作由大型语言模型 (LLMs) 驱动的应用程序。它提供了一套工具和抽象,帮助开发者将多个语言模型集成到应用程序中,并简化了模型的管理、交互和扩展。 LangChain 的核心概念 Chain(链&…

基于轨迹加权的混合离线强化学习数据集

写在前面: 这篇论文阅读已经同步到我的博客网站,若需更优的阅读体验,请前往https://mainjaylai.github.io/Blog/blog/paper/trajectory-dataset进行浏览 摘要 大多数离线强化学习(RL)算法通过最大化目标策略的期望性…

品牌出海!独立站不仅是方向,而是成为跨境电商主流了

近些年,随着跨境电商3.0品牌出海和本土化时代的到来,独立站成为品牌出海的必备渠道和关键胜负手! 搭建独立站作为品牌本土化的最好展示载体,独立的品牌包装与产品页面,能够更好讲述品牌故事,因而得以快速发…

【计算机网络体系结构】计算机网络体系结构实验-www服务器配置管理实验

一、实验内容 www服务器配置管理, wireshark数据包分析 二、实验目的 1. 了解WWW服务的体系结构与工作原理,掌握利用Microsoft的IIS实现WWW服务的基本配置,掌握WEB站点的管理 2. 利用Wireshark抓取http数据包进行分析。运行软件Wireshark…

怎么把CSV文件数据导入MySQL并自动生成表

MySQL MySQL是一个流行的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据库管理。它是基于客户端/服务器架构的开源软件,由瑞典的MySQL AB公司开发,现在属于甲骨文公司(Oracle Corporation)。MySQL支持多种操作系统,包括各种版本的Unix、Linux和Window…

java基于ssm+jsp 师生交流平台

1 管理员登录 管理员输入个人的账号、密码登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的账号、密码不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入自己的账号、密码,直到账…

焦化超低排平台组成部分

焦化行业作为重工业的重要组成部分,其环保问题一直备受关注。近年来,随着环保意识的提升和技术的不断进步,朗观视觉焦化超低排平台应运而生,成为推动焦化行业绿色发展的重要力量。本文将深入剖析焦化超低排平台的组成部分&#xf…

计算机方向国际学术会议推荐

【JPCS独立出版 | EI核心、Scopus】第四届计算机、遥感与航空航天国际学术会议(CRSA 2024) 大会官网:www.iccrsa.org 时间地点:2024年7月5-7日,日本-大阪(线上召开) 征稿主题:计算…

Springboot拦截器使用及其底层源码剖析

博主最近看了一下公司刚刚开发的微服务,准备入手从基本的过滤器以及拦截器开始剖析,以及在帮同学们分析一下上次的jetty过滤器源码与本次Springboot中tomcat中过滤器的区别。正题开始,拦截器顾名思义是进行拦截请求的一系列操作。先给大家示例…

Unity学习笔记---调试

使用Log进行调试 使用Debug.Log方法可以将一些运行时信息打印到Console窗口中。 打印时间戳 //获取时间 Debug.Log(DateTime.Now.ToString());//打印毫秒级的时间 Debug.Log(((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000) * 0.001); 打印自定义文…

Hive基础教程

文章目录 Apache Hive 教程1. Hive-简介1.1 学习Hive的前置知识1.2 什么是Hive?1.3 Hive的架构1.4 Hive的工作流程 Apache Hive 教程 资料来源:Hive Tutorial (tutorialspoint.com) Hive是Hadoop中用于处理结构化数据的数据仓库基础设施工具。它驻留在H…

Pytorch加载模型

一、使用torchvision加载模型 1.使用说明: torchvision是PyTorch生态系统中的一个包,专门用于计算机视觉任务。它提供了一系列用于加载、处理和预处理图像和视频数据的工具,以及常用的计算机视觉模型。 torchvision.models模块包含许多常用的预训练计…

【IEEE独立出版、有确定的ISBN号】第三届能源与电力系统国际学术会议 (ICEEPS 2024)

第三届能源与电力系统国际学术会议 (ICEEPS 2024) 2024 3rd International Conference on Energy and Electrical Power Systems 连续2届会后4-5个月EI检索,检索稳定! 成功申请IEEE出版! 特邀院士、Fellow 报告! 一、大会信息 …

关于sum+=1与sum=sum+1的关系(C语言)

一、sum 1;与sum sum 1;是相等的&#xff0c;运算结果相等&#xff1b; 二、用一段代码说明&#xff1b; # define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {//初始变量值&#xff1b;int n1 1;int n2 1;//输出&#xff1b;printf("运算前的n…

防止在 Qt 中触发信号

在 Qt 中工作时&#xff0c;有时我们需要暂时阻止某些信号的触发。以下是一个经典场景&#xff1a;我们有一个 QCheckBox 对象&#xff0c;当用户勾选或取消勾选时&#xff0c;需要调用一个函数&#xff0c;因此我们将这个函数连接到 stateChanged(int state) 信号。然而&#…

华媒舍:5种中国台湾媒体发稿套餐推广策略大汇聚!

在当代商业时代中&#xff0c;推广策略针对企业的成功尤为重要。中国台湾作为一个经济发展发达的地区&#xff0c;有着繁盛新闻媒体产业链&#xff0c;为企业提供了各种各样发稿套餐来推广其产品与服务。下面我们就详细介绍5种中国台湾媒体发稿套餐推广策略&#xff0c;助力企业…

仓库管理系统03--设计登录页面

1、添加登录窗体 2、整体布局UI 1&#xff09;设计三个白底的边框&#xff0c;其中2个旋转角度&#xff0c;形成以下效果 3、设计登录控件 <Window x:Class"West.StoreMgr.Windows.LoginWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presenta…

【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘:全新 PDF 编辑器、幻灯片版式和更多更新“

【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘&#xff1a;全新 PDF 编辑器、幻灯片版式和更多更新” 大家好 我是寸铁&#x1f44a; 【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘&#xff1a;全新 PDF 编辑器、幻灯片版式和更多更新”✨ 喜欢的小伙伴可以点点…

精准时刻,掌控未来:解锁新一代PCIe时钟板卡!

在当今高度互联和精确度要求极高的技术环境中&#xff0c;时间同步与精确计时显得尤为重要。为了满足行业对高精度时间管理的不断增长的需求&#xff0c;我们自豪地推出铷原子时钟板卡和高精度时钟同步板卡。这两款创新板卡结合了先进的技术和卓越的性能&#xff0c;为各类应用…

TCP/IP 在 Linux 内核中的实现

之前出了一个python的socket编程的文章&#xff0c;里面讲的是怎么进行socket编程。最近想到TCP/IP协议的原理&#xff0c;然后查阅资料后说是在操作系统级别实现的&#xff0c;python的socket模块只是一个接口。 本文就来谈一下Linux源码里实现TCP/IP协议簇的源代码在哪里&am…