二:PyQt5实践《做一个简单翻译软件》此处调用的是百度的翻译接口-----内附源码

首先展示一下最终的实现结果:源代码下载

这里调用的是百度的翻译接口,我们通过访问百度翻译 可以获得对应的url 和请求数据。。

 

第一步: 我们打开百度翻译的网址,在翻译这边随便输入一个中文,可以发现下面那个请求包。。然后打开,会发现对应的url 和请求数据。等会我们模拟浏览器进行发送请求。。然后获取翻译的内容。

  第二步:我们先简单做一个不带界面的翻译代码

           做了两个函数,一个是中文翻译为英文(函数translate()),一个是英文翻译为中文(函数translate1())。  url就是我们上面观察得到的url, 前面的v2版本号,我们在请求的url中去掉了。。接下来是data,这就是请求数据。。word就是我们带翻译的文本。最后会返回一个json格式的数据。。然后将数据提取出来即可。。

import requests

def translate(word):
    url = 'https://fanyi.baidu.com/transapi'
    data = {
        'from': 'zh',
        'to': 'en',
        'query': word,
        'transtype': 'realtime',
        'simple_means_flag': '3',
        'sign': '325815.7046',
        'token': '9b1b599bf1303d7d525833a9e17579bb'
    }
    response = requests.post(url, data=data).json()   # 将获取的数据转换为json格式
    print(response['data'][0]['result'][0][1])


def translate2(word):
    url = 'https://fanyi.baidu.com/transapi'
    data = {
        'from': 'en',
        'to': 'zh',
        'query': word,
        'transtype': 'realtime',
        'simple_means_flag': '3',
        'sign': '325815.7046',
        'token': '9b1b599bf1303d7d525833a9e17579bb'
    }
    response = requests.post(url, data=data).json()   # 将获取的数据转换为json格式
    print(response['data'][0]['result'][0][1])


if __name__ == '__main__':
    sign = input("你想进行的是中翻英还是英翻中(中翻英按1,英翻中按2):")
    if sign == '1':
        word = input("请输入要翻译的中文:")
        translate(word)
    elif sign == '2':
        word = input("请输入要翻译的英文:")
        translate2(word)
    else:
        print("滚,你输入错了!!!")

      输出结果展示:

第三步:我们借用PyQt设置一个界面。然后设置两个按钮,将这两个翻译函数绑定到按钮上即可。。

            ①:设置界面,通过QtDesign。。然后转换为下面的python代码

# -*- coding: utf-8 -*-

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

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 601)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.zh2en = QtWidgets.QPushButton(self.centralwidget)
        self.zh2en.setGeometry(QtCore.QRect(220, 470, 81, 61))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setBold(False)
        font.setWeight(50)
        self.zh2en.setFont(font)
        self.zh2en.setObjectName("zh2en")
        self.en2zh = QtWidgets.QPushButton(self.centralwidget)
        self.en2zh.setGeometry(QtCore.QRect(360, 470, 81, 61))
        self.en2zh.setObjectName("en2zh")
        self.clearBtn = QtWidgets.QPushButton(self.centralwidget)
        self.clearBtn.setGeometry(QtCore.QRect(490, 470, 91, 61))
        self.clearBtn.setObjectName("clearBtn")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(310, 40, 161, 31))
        font = QtGui.QFont()
        font.setFamily("楷体")
        font.setPointSize(26)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.textEdit1 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit1.setGeometry(QtCore.QRect(90, 120, 271, 301))
        self.textEdit1.setObjectName("textEdit1")
        self.textEdit2 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit2.setGeometry(QtCore.QRect(449, 121, 271, 301))
        self.textEdit2.setObjectName("textEdit2")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        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", "MainWindow"))
        self.zh2en.setText(_translate("MainWindow", "中文翻译英文"))
        self.en2zh.setText(_translate("MainWindow", "英文翻译中文"))
        self.clearBtn.setText(_translate("MainWindow", "清空"))
        self.label.setText(_translate("MainWindow", "小狗翻译"))
        self.textEdit1.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">请输入翻译的内容</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
        self.textEdit2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">输出结果</p></body></html>"))

        ②:接下来在同级目录下建立一个python文件callTranslate.py (这个名字是随便起的)实现调用界面,并给按钮绑定槽函数。。实现如下:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import requests
import sys
from Translate import Ui_MainWindow


class Win(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(Win, self).__init__(parent)
        self.setupUi(self)

        self.zh2en.clicked.connect(self.zh2enfun)
        self.en2zh.clicked.connect(self.en2zhfun)
        self.clearBtn.clicked.connect(self.clearinfo)

    def zh2enfun(self):
        '''中文翻译为英文'''
        word = self.textEdit1.toPlainText()
        url = 'https://fanyi.baidu.com/transapi'
        data = {
            'from': 'zh',
            'to': 'en',
            'query': word,
            'transtype': 'realtime',
            'simple_means_flag': '3',
            'sign': '325815.7046',
            'token': '9b1b599bf1303d7d525833a9e17579bb'
        }
        response = requests.post(url, data=data).json()  # 将获取的数据转换为json格式
        info = response['data'][0]['result'][0][1]
        self.textEdit2.setText(info)

    def en2zhfun(self):
        '''英文翻译为中文'''
        word = self.textEdit1.toPlainText()
        url = 'https://fanyi.baidu.com/transapi'
        data = {
            'from': 'en',
            'to': 'zh',
            'query': word,
            'transtype': 'realtime',
            'simple_means_flag': '3',
            'sign': '325815.7046',
            'token': '9b1b599bf1303d7d525833a9e17579bb'
        }
        response = requests.post(url, data=data).json()  # 将获取的数据转换为json格式
        info = response['data'][0]['result'][0][1]
        self.textEdit2.setText(info)

    def clearinfo(self):
        self.textEdit1.clear()
        self.textEdit2.clear()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = Win()
    win.setObjectName("MainWindow")  # 为主窗口设置对象名 为了在下面设置背景颜色
    win.setStyleSheet("#MainWindow{border-image:url(./data/background.jpg);}")
    win.show()
    sys.exit(app.exec_())

最后执行callTranslate.py  输出结果:

 

 源代码下载    

 

全部评论

相关推荐

双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
CVTE校招内推:可以试试我们这,硬件还没招满
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 听劝,这个简历怎么改 #
14099次浏览 183人参与
# 面试被问“你的缺点是什么?”怎么答 #
6405次浏览 99人参与
# 水滴春招 #
16503次浏览 349人参与
# 入职第四天,心情怎么样 #
11321次浏览 63人参与
# 租房找室友 #
8027次浏览 53人参与
# 读研or工作,哪个性价比更高? #
26163次浏览 356人参与
# 职场新人生存指南 #
199236次浏览 5510人参与
# 参加完秋招的机械人,还参加春招吗? #
27000次浏览 276人参与
# 文科生还参加今年的春招吗 #
4118次浏览 31人参与
# 简历无回复,你会继续海投还是优化再投? #
48629次浏览 561人参与
# 你见过最离谱的招聘要求是什么? #
144719次浏览 829人参与
# 如果重来一次你还会读研吗 #
155719次浏览 1706人参与
# 机械人选offer,最看重什么? #
69077次浏览 449人参与
# 选择和努力,哪个更重要? #
44310次浏览 493人参与
# 如果再来一次,你还会学硬件吗 #
103647次浏览 1245人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
20521次浏览 414人参与
# 招聘要求与实际实习内容不符怎么办 #
46753次浏览 494人参与
# 22届毕业,是读研还是拿外包offer先苟着 #
4652次浏览 27人参与
# 你们的毕业论文什么进度了 #
901291次浏览 8961人参与
# 软开人,你觉得应届生多少薪资才算合理? #
81379次浏览 496人参与
# 国企还是互联网,你怎么选? #
109198次浏览 853人参与
牛客网
牛客企业服务