C++ QTimer:计时器只能用于以QThread启动的线程

C++ QTimer:计时器只能用于以QThread启动的线程,c++,qt,qtimer,C++,Qt,Qtimer,我见过一些人和我有同样的问题,但解决办法对我不起作用 这是我的密码: 我正在编写一个程序,每10毫秒发送一个UDP帧。下面是我的程序的工作原理: 我有一个客户端类: 为什么计时器不能工作?我必须把它放在别的地方吗 谢谢。先创建QCore应用程序,然后再运行程序。@RobbieE Dude谢谢!让我们一起来支持下一代选民: //Constructor clientSupervision::clientSupervision() { } void clientSupervision::sendDa

我见过一些人和我有同样的问题,但解决办法对我不起作用

这是我的密码:

我正在编写一个程序,每10毫秒发送一个UDP帧。下面是我的程序的工作原理:

我有一个客户端类:

为什么计时器不能工作?我必须把它放在别的地方吗


谢谢。

先创建QCore应用程序,然后再运行程序。@RobbieE Dude谢谢!让我们一起来支持下一代选民:
//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();
}
int main(int argc, char *argv[])
{
    clientSupervision c;
    c.sendDataUDPTimer(10);
    QCoreApplication a(argc, argv);

    return a.exec();
}