QTimer: Таймеры могут использоваться только с потоками, запущенными с QThread
Я видел людей с такой же проблемой, как у меня, но решение не сработало для меня.
Вот мой код:
Я пишу программу, которая отправляет кадр UDP каждые 10 мс. Вот как должна работать моя программа:
у меня есть client class
:
//Constructor
clientSupervision::clientSupervision()
{
}
void clientSupervision::sendDataUDP(){
//Create a frame and send it
...
}
void clientSupervision::sendDataUDPTimer(int timer){
QTimer *tempsEnvoieTrameSupervision = new QTimer();//Create a timer
tempsEnvoieTrameSupervision->setInterval(timer);//Set the interval
//Mise en place des connections
QObject::connect (tempsEnvoieTrameSupervision,SIGNAL (timeout()),this, SLOT (envoiTrameSupervision())); //Connect the timer to the function
tempsEnvoieTrameSupervision->start();// Start the timer
}
//Call sendDataUDP
void clientSupervision::envoiTrameSupervision(){
std::cout << "Envoi de la trame de supervision";
sendDataUDP();
}
Тогда я использую это в моем main
:
int main(int argc, char *argv[])
{
clientSupervision c;
c.sendDataUDPTimer(10);
QCoreApplication a(argc, argv);
return a.exec();
}
Почему таймер не работает? Должен ли я это испортить где-нибудь еще?
Благодарю.