python例子:翻译器(简单)

news2024/11/24 14:02:07

作品介绍

作品名称:翻译器

开发环境: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 Translator


class 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.translate
        mainWindow.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.coloradmin.cn/o/1849821.html

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

相关文章

Python | Leetcode Python题解之第165题比较版本号

题目&#xff1a; 题解&#xff1a; class Solution:def compareVersion(self, version1: str, version2: str) -> int:n, m len(version1), len(version2)i, j 0, 0while i < n or j < m:x 0while i < n and version1[i] ! .:x x * 10 ord(version1[i]) - o…

SHA256 安全散列算法加速器实验

1、SHA256 介绍 SHA256 加速器是用来计算 SHA-256 的计算单元&#xff0c; SHA256 是 SHA-2 下细分出的一种算法。 SHA-2 名称来自于安全散列算法 2 &#xff08;英语&#xff1a; Secure Hash Algorithm 2 &#xff09;的缩写&#xff0c;一种密码散列函 数算法标准…

你只是重新发现了一些东西

指北君关于另外一条思维路径的发现。 "自以为是"的顿悟时刻 有很多时候&#xff0c;我会"自以为是"的发现/发明一些东西。这种"自以为是"的时刻通常还带有一些骄傲自豪的情绪。这种感觉特别像古希腊博学家阿基米德 在苦思冥想如何测量不规则物体…

第100+12步 ChatGPT学习:R实现KNN分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言&#xff0c;不想学Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了&#xff0c;就帮各位搬运一下吧。 二、R代码实现KNN分类 &#xff08;1&a…

基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

基于Java学生干部管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

【机器学习 复习】 第1章 概述

一、概念 1.机器学习是一种通过先验信息来提升模型能力的方式。 即从数据中产生“模型”( model )的算法&#xff0c;然后对新的数据集进行预测。 2.数据集&#xff08;Dataset&#xff09;&#xff1a;所有数据的集合称为数据集。 训练集&#xff1a;用来训练出一个适合模…

聊聊Vue中的Router(路由)

Vue构造的是一个单页面应用 在 Vue 中&#xff0c;router&#xff08;路由&#xff09;用于定义应用的不同页面路径和组件之间的映射关系&#xff0c;通过路由从而实现页面的切换和导航功能 vue中所有的xxx.vue文件&#xff0c;都是路由组件&#xff0c;这些组件都会被vue读取…

MySQL 死锁查询和解决死锁

来了来了来了&#xff01;客户现场又要骂街了&#xff0c;你们这是什么破系统怎么这么慢啊&#xff1f;&#xff01;&#xff1f;&#xff01; 今天遇到了mysql死锁&#xff0c;直接导致服务器CPU被PUA直接GUA了&#xff01; 别的先别管&#xff0c;先看哪里死锁&#xff0c;或…

【Springcloud微服务】Docker下篇

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Springcloud微服务 &#x1f320; 首发时间&#xff1a;2024年6月22日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f4…

【MySQL数据库】:MySQL视图特性

视图的概念 视图是一个虚拟表&#xff0c;其内容由查询定义&#xff0c;同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图中的数据并不会单独存储在数据库中&#xff0c;其数据来自定义视图时查询所引用的表&#xff08;基表&#xff09;&#xff0c;在每…

1931java Web披萨店订餐系统idea开发mysql数据库web结构java编程计算机网页源码servlet项目

一、源码特点 java Web 披萨店订餐系统是一套完善的信息管理系统&#xff0c;结合java 开发技术和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。 视频地址&#xff1a;…

从零开始的Ollama指南:部署私域大模型

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…

c语言回顾-结构体(2)

前言 前面讲了结构体的概念&#xff0c;定义&#xff0c;赋值&#xff0c;访问等知识&#xff0c;本节内容小编将讲解结构体的内存大小的计算以及通过结构体实现位段&#xff0c;话不多说&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 1.结构体内存对齐 说到计…

Ubuntu系统使用快速入门实践(八)—— git 命令使用

Ubuntu系统使用快速入门实践系列文章 下面是Ubuntu系统使用系列文章的总链接&#xff0c;本人发表这个系列的文章链接均收录于此 Ubuntu系统使用快速入门实践系列文章总链接 下面是专栏地址&#xff1a; Ubuntu系统使用快速入门实践系列文章专栏 文章目录 Ubuntu系统使用快速…

UDS服务——RequestDownload(0x34)

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍RequestDownload(0x34)—— 请求下载,用于给ECU下载数据的,最常见的应用就是在bootloader中,程序下载工具会发起请求下载,以完成ECU程序的升级。通过阅读本文,希望能对你有所帮助。 文章目录 诊断协议那些事儿…

【C++】一个极简但完整的C++程序

一、一个极简但完整的C程序 我们编写程序是为了解决问题和任务的。 1、任务&#xff1a; 某个书店将每本售出的图书的书名和出版社&#xff0c;输入到一个文件中&#xff0c;这些信息以书售出的时间顺序输入&#xff0c;每两周店主会手工计算每本书的销售量、以及每个出版社的…

【单片机毕业设计选题24020】-全自动鱼缸的设计与应用

系统功能: &#xff08;1&#xff09;检测并控制鱼缸水温&#xff0c;水温低于22℃后开启加热&#xff0c;高于28℃后关闭加热。 &#xff08;2&#xff09;定时喂食&#xff0c;每天12点和0点喂食一次&#xff0c;步进电机开启后再关闭模拟喂食。 &#xff08;3&#xff09…

初学者应该掌握的MySQL数据库的基本组成部分及概念

MySQL数据库作为一种开源的关系型数据库管理系统&#xff0c;被广泛应用于Web应用开发和数据存储。它具有高性能、易用性和可靠性等特点&#xff0c;是开发者们的首选之一。在本篇文章中&#xff0c;我们将详细介绍MySQL数据库的核心组成部分&#xff0c;帮助你深入理解这个强大…

杀疯了!PerfXCloud-AI大模型夏日狂欢来袭,向基石用户赠送 ∞ 亿Token!

【澎峰科技重磅消息】 在全球范围内大模型正逐渐成为强大的创新驱动力。在这个充满激情的夏日&#xff0c;PerfXCloud为开发者和企业带来了前所未有的福利&#xff1a; 1. 零成本亲密、深度体验大模型&#xff0c;提供大量示范案例。 2. 向基石用户赠送∞亿Token的激励计划。…