QtNetwork请求导致程序"finish unexpectedly"
QtNetworkRequest cause program to "finish unexpectedly"
我是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);
相关文章:
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- "ndk-build finish with non-zero exit value 2" 在编译文本仙女项目时
- QtNetwork请求导致程序"finish unexpectedly"
- 什么时候会有QNetworkReply::error信号后跟一个finish()信号
- 将类布局添加到另一个类布局:"The program has unexpectedly finished."
- 无法在多个 Qthread的 QThread 和 finish() 信号之间连接
- 如何在 omnet++ 中的模块上单独调用 finish()
- Eclipse C++ 项目创建向导中的"Finish"命令不起作用
- Qt "The program has unexpectedly finished."关闭时
- Qt5中的void QSqlQuery::clear()和void QSqlQuery::finish()之间有什么区别
- QFutureWatcher 如何观察多个任务/期货和 finish() 信号