Здравствуйте!
Суть проблемы:
Есть переменная id_dev. Получаю ответ с сервера через api через get_responses(), и в функции rez_player(QNetworkReply *reply) пытаюсь присвоить id_dev новое значение. Внутри функции переменная меняется, но глобально нет.
это видно на 18 строчке, когда я пытаюсь вывести эту переменную я получаю изначальное значение, а не то, что нужно. Вот и вопрос, как мне присвоить ей значение в той функции?
.cpp
#include "gm.h"
#include "ui_gm.h"
////// VAR /////
QString nick_dev = "123";
QString id_last_match;
QString id_dev;
QString token = "*******************************";
////// VAR /////
GM::GM(QWidget *parent): QMainWindow(parent), ui(new Ui::GM)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);
m_title = new KcWdTitlebar(this);
ui->Lay->addWidget(m_title);
this->setWindowIcon(QIcon(QPixmap((":/resource/img/logo.png"))));
get_responses();
qDebug()<<id_dev;
}
GM::~GM(){delete ui;}
void GM::get_responses()
{
get_player = new QNetworkAccessManager();
connect(get_player, SIGNAL(finished(QNetworkReply*)), this, SLOT(rez_player(QNetworkReply*)));
get_player->get(QNetworkRequest(QUrl("https://api.vimeworld.ru/user/name/" + nick_dev + "?token=" + token)));
}
void GM::rez_player(QNetworkReply *reply)
{
if(!reply->error())
{
id_dev = QString::number(QJsonDocument::fromJson(reply->readAll()).array().at(0).toObject().value("id").toInt());
}
else{}
}
.h
#ifndef GM_H
#define GM_H
#include <QMainWindow>
#include "Bar.h"
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QNetworkAccessManager>
QT_BEGIN_NAMESPACE
namespace Ui { class GM; }
QT_END_NAMESPACE
class GM : public QMainWindow
{
Q_OBJECT
public:
GM(QWidget *parent = nullptr);
~GM();
private:
QNetworkAccessManager *get_player;
QNetworkAccessManager *get_id_last_match;
KcWdTitlebar *m_title;
Ui::GM *ui;
private slots:
void get_responses();
void rez_player(QNetworkReply *reply);
void rez_id_last_match(QNetworkReply *reply);
};
#endif // GM_H
.pro
QT += core gui
QT += network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
Bar.cpp \
main.cpp \
gm.cpp
HEADERS += \
Bar.h \
gm.h
FORMS += \
gm.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
resource.qrc