#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
manager = new QNetworkAccessManager(this);
player = new QMediaPlayer();
}
Widget::~Widget()
{
delete ui;
delete manager;
}
/***********************发送数据toAPI***********************/
void Widget::send_fun(const QByteArray &send)
{
QNetworkRequest request;
request.setUrl(QUrl("http://fanyi.youdao.com/openapi.do?keyfrom=YouDaoCV&to=zh_CHS&key=659600698&type=data&doctype=json&version=1.1&q="+send));
reply =manager->get(request);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(send_slot(QNetworkReply*)));
}
/********************读取数据**********************/
void Widget::send_slot(QNetworkReply *)
{
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
QJsonDocument json;
QJsonObject middle, basic0;
QByteArray byte=reply->readAll();
qDebug()<<byte;
json = QJsonDocument::fromJson(byte);
if (!json.isNull())
{
middle = json.object();
/************词句解释******************/
QJsonArray tran = middle.value("translation").toArray();
QString data = NULL;
data.append(tran.at(0).toString());
ui->textEdit_2->insertPlainText(data);
//ui->xianshi->insertPlainText(data+"\n");
// ui->xianshi->insertPlainText("\n");
/**************单词解释_基于数组解析************************/
basic0 = middle.value("basic").toObject();
QString text = NULL;
QJsonArray explain = basic0.value("explains").toArray();//单词的解释
qDebug()<<explain;
for(int i=0;i<explain.size();i++)
{
text.append(explain.at(i).toString());
text.append("\n");
}
ui->xianshi->insertPlainText(text);
}
}
/*******************输入发送的数据**************/
void Widget::on_pushButtonfy_clicked()
{
ui->xianshi->clear();
ui->textEdit_2->clear();
send_fun(ui->textEdit->toPlainText().toUtf8());
}
/***************基于单词的发音_字符串*************/
void Widget::on_pushButton_clicked()
{
// QString pare = ui->lineEdit->text();
//if(0==QString::compare(pare,"英文"))
// player->setMedia(QUrl("http://dict.youdao.com/dictvoice?audio="+ui->textEdit->toPlainText().toUtf8()));
// player->play();
// if(0==QString::compare(pare,"中文"))
player->setMedia(QUrl("http://dict.youdao.com/dictvoice?audio="+ui->textEdit_2->toPlainText().toUtf8()));
player->play();
}
void Widget::on_TO_clicked()
{
QString pare = ui->lineEdit->text();
if(0==QString::compare(pare,"英文"))
{
ui->lineEdit->clear();
ui->lineEdit->setText("中文");
ui->lineEdit_2->clear();
ui->lineEdit_2->setText("英文");
ui->label->clear();
ui->label->setText("请输入中文:");
}
if(0==QString::compare(pare,"中文"))
{
ui->lineEdit->clear();
ui->lineEdit->setText("英文");
ui->lineEdit_2->clear();
ui->lineEdit_2->setText("中文");
ui->label->clear();
ui->label->setText("请输入英文:");
}
}