Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.11.2018
Сообщений: 2
1

Не работает get запрос вызываемый таймером

16.12.2018, 14:28. Показов 583. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Сильно не пинайте, только учусь.

Собственно, по срабатыванию таймера нужно получить JSON с погодой с openweather, распарсить его, и вывести в лэйбл.
Работает только при первом срабатывании таймера. Не пойму почему.

Сам таймер:


C++
1
2
3
 weather_timer = new QTimer; // timer for updating a weather
 weather_timer->start(6000); //timer enable for weather update
 connect(weather_timer,SIGNAL(timeout()),this , SLOT(get_weather_data())); // timer connected for a weather

Слот по срабатыванию таймера :

C++
1
2
3
4
5
void MainWindow::get_weather_data()
{
    networkManager->get(QNetworkRequest(QUrl("http://api.openweathermap.org/data/2.5/weather?q=******,RU&appid=***************")));
    connect(networkManager, &QNetworkAccessManager::finished,this, &MainWindow::parseJson);
}
Функция вызываемая при получении данных с openweather

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void MainWindow::parseJson(QNetworkReply *reply)
{
    if (!reply->error())
    {
        //qDebug() << "No errors. tnx";
        QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
        QJsonObject root = document.object();
        //QTime test = test.currentTime();
        //qDebug() <<  root << " " <<  test;
        QString city = root.value("name").toString();
        //qDebug() << city;
 
        //get temperature from JSON data
        QJsonObject main = root.value("main").toObject();
        double temp = (main.value("temp").toDouble())-273.15;
        QString temperature;
        temperature.setNum(temp);
 
        //get time when weather is update
        QTime weather_time;
        QString weather_time_toStr = weather_time.currentTime().toString("hh:mm:ss");
        ui->weather->setText("В городе " + city + "," + "температура составляет: " + temperature + "°C. " + " / Погода обновлена   в " + weather_time_toStr);
    }
    else {
 
        //qDebug() << "JSON Error";
        ui->weather->setText("Weather Err");
    }
}
Помогите разобраться, что я делаю не так.... :-(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2018, 14:28
Ответы с готовыми решениями:

Вызываемый файл с алгоритмом
есть такая проблема: есть ряд задач, решение которых выходит в сотни строк , а так как задач...

include вызываемый innerHTML
вот примерный код &lt;?php $a=10; ?&gt; &lt;html&gt;&lt;head&gt; &lt;script type=&quot;text/javascript&quot;&gt; function f()...

Динамически вызываемый метод
Доброго времени суток! Делаю калькулятор, с обычными расчетами и комплексными. Данные вводятся...

Как CLR находит вызываемый метод по метаданным?(+об устройстве IL кода)
Допустим, есть код: using System public class Example{ public static void Main(){ ...

1
0 / 0 / 0
Регистрация: 25.11.2018
Сообщений: 2
17.12.2018, 19:27  [ТС] 2
Разобрался сам....
0
17.12.2018, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2018, 19:27
Помогаю со студенческими работами здесь

Создать класс, в котором можно сохранить любой вызываемый объект или функцию
Возникла идея создать класс, в котором можно сохранить любой вызываемый объект или функцию. Что то...

Создание метода, который бы оборачивал вызываемый извне метод в try-catch для обработки SQLException
Всем привет. Буквально второй день изучаю Java и возникла одна проблема. Имеется класс DBWorker,...

Запрос к бд работает в аксес но не работает в delphi? Подскажите в чём ошибка
begin //ADOQuery1.SQL.Text:='drop table `request`'; //ADOQuery1.ExecSQL; AdoQuery1.SQL.Clear;...

Запрос. В вба не работает, а в конструкторе для запросов работает
Public Function addData(pID As String, exID As String) Dim sql As String sql = &quot;INSERT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru