由于作者第一次写博客,并且水平有限,有不足之处希望大家指出。
所以废话不多说直接上核心代码边说边看。
参考文档百度API翻译文档
如果你没有账号请你先去注册一个,注册位置:http://api.fanyi.baidu.com/product/11
因为本人才开始学习,可能一些命名还不规范,一些异常还未做判定,请各位手下留情,附上程序源码。需要代码的请私信我或者直接下载。
CSDN下载地址:https://download.csdn.net/download/luck_anan/12908828


代码重构于2020年10月4日,上传GitHub并同步更新CSDN下载地址
编译环境为qt5.9.9 MinGW 32bit 可在Linux发行版 deepin 15.11上完美运行。
GitHub仓库地址https://github.com/anan1995/QT_Translation

如果你觉得文章可以的话请麻烦点赞支持谢谢。
by luck_an

2020年12月13日,感谢@举个栗子木提交的一个反馈,当然也让我学习了一些东西。GitHub仓库已经更新。CSDN因为一些你们知道的问题我就不更新了,简单说一下问题所以在就是。QT线程run()函数里面不能去调用他的成员的Socket。个人理解因为run函里面已经是另一个线程了,相当于我们在跨线程调用Socket,这样貌似是不行的,有兴趣的兄弟可以参考这篇博客:https://blog.csdn.net/lzjsqn/article/details/56287267
如何修改请看评论。或者你看了上面那篇博客你就知道怎么改了,很简单。



#defing MY_APID 2015063000000001 //这个位置定义你的开发账号如 2015063000000001
#defing MY_APID_KEY "12345678" //这个位置定义你的开发密匙如: 12345678
int Widget::function_data()
{QString MD5;char salt[60];sprintf(salt,"%d",rand());  //获取随机数QString cText=ui->text->text(); //获取待翻译的文本QString sign=QString("%1%2%3%4")\.arg(MY_APID).arg(cText).arg(salt).arg(MY_APID_KEY);//连接加密文件 宏MY_APID 是你的开发账号 宏MY_APID_KEY 是你的开发者密匙QByteArray str = QCryptographicHash::hash(sign.toUtf8(),QCryptographicHash::Md5);MD5.append(str.toHex());//生成md5加密文件QString myurl=QString("http://api.fanyi.baidu.com/api/trans/vip/translate?" \ "q=%1&from=%2&to=%3&appid=%4""&salt=%5&sign=%6")\.arg(cText).arg(from).arg(to).arg(MY_APID).arg(salt).arg(MD5);//连接上传文本 MY_APID 是你的开发账号/*大概是这样一串东西http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4*/m_Manager->get(QNetworkRequest(QUrl(myurl)));//发送上传;//得到返回值触发槽函数int replyFinished()//在.h中定义 QNetworkAccessManager * m_Manager; 然后在构造函数中new一下//在new m_Manager后需要连接以下槽函数//connect(m_Manager,&QNetworkAccessManager::finished,this,&Widget::replyFinished);return 1;}
int Widget::replyFinished(QNetworkReply *reply)
{QJsonParseError jsonError;QByteArray all=reply->readAll();//获得api返回值/* 大概是这样的一个东西{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}你需要解码 */QJsonDocument json = QJsonDocument::fromJson(all, &jsonError);QJsonObject object = json.object();//json转码;QString cResult;if(object.contains("error_code")){int nResult=object.value("error_code").toInt();switch (nResult) {case 52001:cResult ="52001 请求超时 重试";break;case 52002:cResult ="52002 系统错误 重试";break;case 54000:cResult ="54000 必填参数为空";break;case 54001:cResult ="54001 签名错误";break;case 54003:cResult ="54003 速度过快访问频率受限";break;case 54004:cResult ="54004 账户余额不足";break;case 54005:cResult ="54005 请求频繁";break;case 58002:cResult ="58002 服务关闭";break;default:cResult ="其他错误";break;}}else {QJsonArray value = object.value("trans_result").toArray();//一次解码/*{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}第一次解码*/QJsonObject object1=value.at(0).toObject();//二次解码开【】括号;/*{"src":"apple","dst":"\u82f9\u679c"}第二次解码*///from=object.value("from").toString();cResult=object1.value("dst").toString();//得到翻译结果}ui->text_send->setText(cResult);reply->deleteLater();return 1;}

用到的头文件有

#include<QCryptographicHash>//md5加密的库
#include<QtNetwork>
#include<QJsonObject>
#include<QJsonDocument>
#include<QDesktopServices>
#include<QAction>

当然你还需要在.pro里面添加network的库

QT       += network

运行结果:

QT 调用 百度翻译API 写的在线翻译程序相关推荐

  1. Qt调用百度翻译api

    参考Gitee某工程 一.代码 //百度翻译 void CBaiduTranslater::translate(const QString &src, const QString from, ...

  2. 一个Qt调用百度翻译API进行文本翻译的程序记录,辅助ts文件进行翻译。

    项目要求有多国语言翻译,但是手动的去复制粘贴翻译显然不是合理的,组里有人写过类似工具,但是我这里没有源码,又想根据我的需求定制一些功能,所以借鉴现有的界面,如下图 下面先搞定核心功能:百度翻译api的 ...

  3. 【新手】基于C++Qt5通过调用百度翻译API制作简易翻译工具

    基于C++Qt5通过调用百度翻译API制作简易翻译工具 目录 基于C++Qt5通过调用百度翻译API制作简易翻译工具 写在前面 步骤: 1.注册百度翻译开放平台账号并开通翻译服务 2.下载安装Qt5和 ...

  4. python百度翻译接口_python3 调用百度翻译API翻译英文

    自行申请百度开发者账号import importlib,sys,urllib importlib.reload(sys) import urllib.request import json #导入js ...

  5. 【2019-07-23】]python3 把日语翻译为中文 调用百度翻译API接口及API申请使用教程

    点击申请百度翻译API,得到一个你自己的API账户. 点击查看申请教程,感谢教程原作者. API官网提供了一个python2的使用接口的demo还有详细的解释文档 想用python3完成,代码几乎照搬 ...

  6. python调用百度翻译-Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  7. python调用百度翻译-python3调用百度翻译API实时翻译的实例代码

    python3调用百度翻译API实现实时翻译 今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个 ...

  8. 前端js调用百度翻译api接口

    目录 1.到百度翻译开放平台注册自己的账号 2.编辑html代码,设计一个简易的页面 3.远程调用百度翻译api 4.完整代码 5.测试 到百度翻译开放平台注册自己的账号 (1)进入网页:开放平台官网 ...

  9. Pepper/Nao中级教程:第五章 Pepper/Nao机器人如何调用百度翻译API

    关于Naoqi之家 欢迎访问Naoqi之家,一个提供Pepper/Nao机器人中文开发手册的站点. http://www.naoqi.net 5.1 目标 我希望让机器人做翻译,但是Naoqi自身是没 ...

最新文章

  1. multi-CPU, multi-core and hyper-thread--转
  2. 路易斯安那州立大学计算机科学,西北路易斯安那州立大学
  3. 分页原理+分页代码+分页类制作
  4. Java基础day2
  5. (三)git常用命令及方法大全
  6. div展示html文本,html – 使文本适合div
  7. html切换搜索引擎,关于JavaScript如何切换搜索引擎的导航网页搜索框的实例代码分享...
  8. 手机的移动网络怎么开_都连接WiFi了,还要开移动网络吗?
  9. hadoop ha环境下的datanode启动报错java.lang.NumberFormatException: For input string: 10m
  10. 微信小程序学习笔记-(10)-猫眼电影案例
  11. Windows 10 Enterprise LTSC MSDN官方纯净版下载
  12. 从零开始的硬改路由器记录
  13. Python图像处理一:图像的读取、显示与存储
  14. 远程桌面计算机没有密码设置,如果对方电脑没有设置密码,如何使用远程桌面连接?...
  15. excel怎么不显示图表上显示为0%的项?
  16. pyhton爬取武汉地铁信息
  17. 【Linux】进程间通信-共享内存
  18. 菲尔兹奖得主埃菲 · 杰曼诺夫全职加入南科大,任职讲席教授
  19. SAP Report painter报表绘制器
  20. 车用摄像头的一个应用(想法)

热门文章

  1. 好用的chrome浏览器网页翻译插件
  2. asp.net页面间数据传递(总结篇)
  3. 《图解TCP/IP》读书笔记二:TCP/IP基础知识
  4. Linux 查看文件的内容 - head、tail、cat、more、less
  5. inkscape制作向日葵
  6. 各种浏览器网页翻译插件,超好用
  7. 咕泡p6java架构师五期涨薪班
  8. SC4020/SCv2020 控制器更换流程步骤和可能遇到的问题
  9. python不使用pandas保存csv|python追加写入scv方法
  10. Android OpenGLES2.0(十七)——球形天空盒VR效果实现