googletrans + pyQt5 + PyCharm

版权声明:本文为博主经验积累 https://blog.csdn.net/qq_23452385/article/details/87871266

目录

googletrans工具

cmd命令安装

PyCharm中Settings配置安装

pyQt5工具

python编写translatetool

Pyinstaller将translatetool打包成EXE

安装Pyinstaller

pyinstaller命令

打包exe图片资源无法显示


单身暴击!程序员用 Python 给女朋友写了个翻译软件

看了这篇文章,抽动哦写个小工具粘贴翻译

成事条件,看看“谷歌翻译 Google translate 改版了 添加了翻译文档功能

谷歌翻译北京服务器:https://translate.google.cn

谷歌翻译海外服务器:https://translate.google.com

谷歌翻译北京的服务器可以直连,不需要扶墙。而海外服务器需科学上网

googletrans工具

https://pypi.org/project/googletrans/

cmd命令安装

pip install googletrans

PyCharm中Settings配置安装

pyQt5工具

pyQt5 + pycharm

python编写translatetool

main_window.py主界面,GitHub:translatetool
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'MainWindow.ui'
#
# Created by: PyQt5 UI code generator 5.12
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QWidget
from PyQt5.QtGui import QIcon

import googletrans
from image import images_rc

import task


class Ui_MainWindow(QMainWindow):
    def __init__(self):
        super(Ui_MainWindow, self).__init__()
        self.initUi()
        self.show()

    def initUi(self):
        icon = QIcon(':/icon.png')
        self.setWindowIcon(icon)
        self.resize(800, 600)

        mainLayout = QWidget()

        label = QtWidgets.QLabel("文字翻译")
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        label.setFont(font)

        languages = googletrans.LANGUAGES.copy()
        languages['zh-cn'] = '中文(简体)'
        languages['zh-tw'] = '中文(繁体)'
        self.langcodes = dict(map(reversed, languages.items()))
        self.langlist = [k.capitalize() for k in self.langcodes.keys()]

        horizontalLayout = QtWidgets.QHBoxLayout()
        self.srcComboBox = self.createComboBox('English')
        self.swapButton = QtWidgets.QPushButton()
        self.swapButton.setStyleSheet("QPushButton{border-image: url(:/swap.png);width:40px;height:40px}")
        self.swapButton.clicked.connect(self.swapCombBox)
        self.dstComboBox = self.createComboBox('中文(简体)')
        horizontalLayout.addWidget(self.srcComboBox)
        horizontalLayout.addWidget(self.swapButton)
        horizontalLayout.addWidget(self.dstComboBox)

        self.fanyiButton = QtWidgets.QPushButton("&翻译")
        self.fanyiButton.clicked.connect(self.translate)

        self.textEdit = QtWidgets.QTextEdit()
        self.textEdit_2 = QtWidgets.QTextEdit()
        self.textEdit_2.setReadOnly(True)

        gridLayout = QtWidgets.QGridLayout()
        gridLayout.addWidget(label, 0, 0, 1, 1)
        gridLayout.addLayout(horizontalLayout, 1, 0, 1, 3)
        gridLayout.addWidget(self.fanyiButton, 1, 3, 1, 1)
        gridLayout.addWidget(self.textEdit, 2, 0, 1, 2)
        gridLayout.addWidget(self.textEdit_2, 2, 2, 1, 2)

        mainLayout.setLayout(gridLayout)
        self.setCentralWidget(mainLayout)
        self.statusBar().showMessage("启动完成")

        # translate
        self.translateTask = task.TranslateTask()
        self.translateTask.done.connect(self.result)

    def createComboBox(self, index=''):
        comboBox = QtWidgets.QComboBox(self)
        comboBox.setEditable(True)
        comboBox.addItems(self.langlist)
        comboBox.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                               QtWidgets.QSizePolicy.Preferred)
        comboBox.setCurrentIndex(self.langlist.index(index))
        return comboBox


    def swapCombBox(self):
        language_src = self.srcComboBox.currentText()
        language_dst = self.dstComboBox.currentText()
        self.srcComboBox.setCurrentIndex(self.langlist.index(language_dst))
        self.dstComboBox.setCurrentIndex(self.langlist.index(language_src))

    def translate(self):
        if self.textEdit.toPlainText():
            language_src = self.srcComboBox.currentText()
            language_dst = self.dstComboBox.currentText()
            lang_src = self.langcodes.get(language_src.lower())
            lang_dst = self.langcodes.get(language_dst.lower())
            self.translateTask.set_attr(lang_src, lang_dst, self.textEdit.toPlainText())
            self.translateTask.start()

    def result(self, msg):
        self.textEdit_2.setText(msg)


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    ui_window = Ui_MainWindow()
    sys.exit(app.exec_())

运行结果

Pyinstaller将translatetool打包成EXE

安装Pyinstaller

pyinstaller命令

C:\Python\Python36\Scripts\pyinstaller.exe -F -i E:\python\PycharmProjects\translatetool\image\icon.ico E:\python\PycharmProjects\translatetool\main_window.py -w

exe文件在运行命令的目录下dist

打包exe图片资源无法显示

请参考pyinstaller打包,exe图片资源无法显示问题

猜你喜欢

转载自blog.csdn.net/qq_23452385/article/details/87871266
今日推荐