c++ - QNetworkRequest导致程序到 "finish unexpectedly"

标签 c++ qt

我是 C++ 和 Qt 的初学者,我正在尝试制作一个翻译程序,但它在执行网络请求时崩溃了...

错误: Oversetter.exe 已退出,代码为 255

我的代码:

头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QApplication>
...
#include <QUrl>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptValue>
#include <QtScript/QScriptValueIterator>

class MainWindow : public QWidget
{
Q_OBJECT

public:
MainWindow();

public slots:
void getTranslation();
void onTranslationRecieved(QNetworkReply* reply);

private:
QTextEdit *te_input;
QTextEdit *te_output;
};
#endif

代码文件

void MainWindow::getTranslation()
{
te_output->setText("[Oversettelse pågår]\n[Translation in progress]");

QString url = "http://translate.googleapis.com/translate_a/single?client=gtx";
...
url.append(te_input->toPlainText());
qInfo() << "url: " + url;

QNetworkAccessManager *nam;
connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(onTranslationRecieved(QNetworkReply*)));
nam->get(QNetworkRequest(QUrl(url)));

}

void MainWindow::onTranslationRecieved(QNetworkReply* reply)
{
QString data = (QString) reply->readAll();
te_output->setText(data);

QScriptEngine engine;
QScriptValue result = engine.evaluate(data);
QString translation = result.property("0").property("0").property("0").toString();
}

任何帮助将不胜感激:-)

最佳答案

首先:

这条线

QNetworkAccessManager *nam; 

应该是:

QNetworkAccessManager *nam = new QNetworkAccessManager(this);

关于c++ - QNetworkRequest导致程序到 "finish unexpectedly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183630/

相关文章:

c++ - Armadillo C++类型转换双矩阵垫到浮点矩阵fmat

c++ - 为什么这是有效的 C? --- ({123;}) 评估为 123

c++ - 如何覆盖基类的 (->) 运算符的成员

c++ - UART qt 到微 Controller ,无法正确发送数据

c++ - 使用 D_ptr 实现析构函数

qt - 从 C++ 向 QML Video Player 输入视频数据

c++ - 将字符串转换为 LPCWSTR 以供 CreateFile() 寻址串行端口

c++ - C++ 全局初始化可以有多惰性?

c++ - 当 S 是 T 的普通子类时,在需要 T 数组的地方使用 S 数组是否安全?

c++ - boost::asio io_service 保留我的其余代码运行