Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: denisonl от Июнь 30, 2017, 17:46



Название: Проблема с периодическим обновлением данных
Отправлено: denisonl от Июнь 30, 2017, 17:46
Добрый день!

Пишу приложение под системы сбора данных MCC (mccdaq.com) и Linux. Задача: написать UI, куда выводится значение напряжения на выбранном выходе с определенной частотой выборки.
Столкнулся со следующей проблемой. Данные необходимо получать с периодичностью, скажем, 1 раз в секунду. Соответственно, необходимо сделать некоторый цикл:

while(1){
...обновление данных
...sleep(1);
}

Была идея реализовать это с помощью таймера, но не знаю, как это сделать на практике. Подскажите, пожалуйста
Спасибо

З.Ы UI, который должен получится - во вложении. Кнопка Stop - выход из приложения, Start - запуск программы


Название: Re: Проблема с периодическим обновлением данных
Отправлено: Apktyc от Июнь 30, 2017, 17:56
Где-нибудь в районе конструктора (или инициирующего кода) создаете таймер и связываете его с функцией, которая будет обновлять данные
Код
C++ (Qt)
QTimer* Timer = new QTimer;
connect(Timer, &QTimer::timeout, this, &MW::updateData);
Timer->start(1000);
 
и создаете саму функцию
Код
C++ (Qt)
void MW::updateData()
{
 // Code for updating data
}
 


Название: Re: Проблема с периодическим обновлением данных
Отправлено: denisonl от Июль 04, 2017, 17:22
Спасибо! А через потоки как-то можно сделать? Или не так - а стоит ли через потоки?

Где-нибудь в районе конструктора (или инициирующего кода) создаете таймер и связываете его с функцией, которая будет обновлять данные