作品介绍
作品名称:翻译器
开发环境: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道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。
↓↓↓↓