Russian Qt Forum

Qt => Общие вопросы => Тема начата: megido от Июль 28, 2016, 22:56



Название: передать параметры в сигнал QnetworkReply::finished()
Отправлено: megido от Июль 28, 2016, 22:56
значит мне нужно открыть урл, забрать оттуда данные и вставить в таблицу в определенную ячейку, ну и еще проделать некоторые манипуляции с полученными данными и теми что у меня уже есть.

например
Код:
void X::x()
{
 int a =12;
 int row = 3;
 emit SendRequest('site.ru/somerequest');
}

... тут еще код отправки запроса

void X::RequestFinished()
{
response=reply->readAll();
// а вот тут мне нужны переменные а и row;
//...

}


как мне блин их передать?


Название: Re: передать параметры в сигнал QnetworkReply::finished()
Отправлено: Bepec от Июль 29, 2016, 00:00
1) сделать членами класса. Подходит если запрос единовременно может быть только один.
Код:
class X : public QObject
{
public:
X();
private slots:
void RequestFinished();
private:
int a;
int row;
}
2) создать структуру, которая будет хранить данные и откуда будут браться данные. При запросе добавляем туда все данные, при получении finished сравниваем урлы и забираем данные с изыманием структуры :)
Код:
struct rowAData
{
int a;
int row;
QString url;
}

class X : public QObject
{
public:
X();
private slots:
void RequestFinished();
private:
QList<rowAData> listData_;
}

Остальное всё сложнее, описывать лень :D