资源简介
有疑问的请在博客下方留言,不能及时回复请谅解,谢谢。
代码片段和文件信息
#include “electronicdictionary.h“
#include “ui_electronicdictionary.h“
#include
#include
#include ject>
#include
#include
#include
#include
electronicDictionary::electronicDictionary(QWidget *parentQString appid QString key QString salt):
QWidget(parent)
ui(new Ui::electronicDictionary)
{
ui->setupUi(this);
//默认初始化
from = “en“;
to = “zh“;
this->appid = appid;
this->key = key;
this->salt = salt;
}
electronicDictionary::~electronicDictionary()
{
delete ui;
}
void electronicDictionary::on_teSend_textChanged()
{
q = ui->teSend->toPlainText();
}
void electronicDictionary::on_pbTranslate_clicked()
{
md5Encryption();
// urlEncode();
//设置访问地址
url = “http://api.fanyi.baidu.com/api/trans/vip/translate?“;
url += “q=“ + q +
“&from=“ + from +
“&to=“ + to +
“&appid=“ + appid +
“&salt=“ + salt +
“&sign=“ + signMd5;
qDebug() << “url=“ << url;
//实例化网址管理
request = new QNetworkRequest;
//1、设置具体的网址
request->setUrl(url);
//2、实例化http请求方式
manager = new QNetworkAccessManager;
//关联信号 finished 当网页回复数据时触发,此时才能在槽函数中,读取请求到的数据
connect(manager SIGNAL(finished(QNetworkReply*)) this SLOT(httpReply(QNetworkReply *)));
//3、get方法请求(get方法上传)
manager->get(*request);
}
void electronicDictionary::httpReply(QNetworkReply * reply)
{
networkReply = ““;
networkReply.append(reply->readAll());
qDebug() << “networkReply“ << networkReply;
QJsonobject obj = stringToJson(networkReply);
if(obj.contains(“trans_result“))
{
QJsonValue val = obj.value(“trans_result“);
if(val.isArray())
{
QJsonArray array = val.toArray();
// qDebug() << array; //将该对象一次性打印出来
qDebug() << array.at(0);
if(array.at(0).isobject())
{
QJsonobject obj = array.at(0).toobject();
if(obj.contains(“dst“))
{
QString utf8Reply = obj.value(“dst“).toString();
qDebug() << “utf8Reply“ << utf8Reply;
ui->teRecv->clear();
ui->teRecv->insertPlainText(utf8Reply);
}
}
}else{
qDebug() << “错误:“< }
}
}
QJsonobject electronicDictionary::stringToJson(const QString jsonString)
{
//QTextCodec类提供文本编码之间的转换
//codecForName():搜索所有已安装的qtextcodec对象,并返回与名称最匹配的对象;
//匹配是不区分大小写的。如果找不到与名称匹配的编解码器,则返回0。
QTextCodec *tc = QTextCodec::codecForName(“UTF-8“);//防止中文乱码
//指示编译器指定名称的参数不在函数正文中使用。这可用于抑制编译器警告,同时允许在其签名中使用有意义的参数名称定义函数。
Q_UNUSED(tc);
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8());
if (jsonDocument.isNull()){
qDebug() << “
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5052 2019-11-04 00:20 myElectronicDictionary\electronicdictionary.cpp
文件 1261 2019-11-03 23:46 myElectronicDictionary\electronicdictionary.h
文件 3487 2019-11-03 23:05 myElectronicDictionary\electronicdictionary.ui
文件 175 2019-11-03 22:27 myElectronicDictionary\main.cpp
文件 1157 2019-11-03 22:37 myElectronicDictionary\myElectronicDictionary.pro
文件 23958 2019-11-12 20:55 myElectronicDictionary\myElectronicDictionary.pro.user
文件 1147 2019-11-03 23:01 myElectronicDictionary\widget.cpp
文件 577 2019-11-04 00:04 myElectronicDictionary\widget.h
文件 2997 2019-11-04 00:03 myElectronicDictionary\widget.ui
目录 0 2019-11-12 20:55 myElectronicDictionary
----------- --------- ---------- ----- ----
39811 10
- 上一篇:命名管道实现进程间通信程序
- 下一篇:一份有关于SATA 技术介绍
相关资源
- Delaunay三角剖分
- vicsek模型的Qt实现
- QT4实现的给予QFTP类的FTP客户端程序
- 微信公众平台服务号API开发接口
- QT进制间的转换,可供新手学习
- .net 后台Post,get方式调用webapi
- Win32API编程入门
- 使用ArcGISAPI实现多个弹窗弹出;多个
- Qt实现的连连看游戏源码
- arm板上实现usb摄像头采集及显示(q
- QT闹钟alarm
- qt gps 定位系统源代码
- QT 基于mainwindow添加一个文件菜单
- 简单环形条格进度条
- qtjambi-eclipse-integration-4.5.2_01
- 基于TCP的网络聊天程序
- linux qt4.7 v4l2 YUV(YUYV) mmap 显示视频
- RXTX API文档
- Image Mastering API V2中文版
- 医保接口 delphi 7.0 源代码
- 手把手微信jsapi公众号支付教程
- 基于QT的局域网聊天系统215855
- qt入门程序——读取txt文件
- 一个简单的 QT5编写的 串口工具代码
- 一个简单QT5编写的录音机代码
- Qt绘图实现
- 嵌入式Linux系统设计QT计算器
- qt记事本(含详细解释)
- qt 实现数据库操作和显示
- Qt利用帧动画实现所有动画效果(QW
评论
共有 条评论