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

时间:2014-06-25 13:58:14

标签: c++ qt qtimer

我看到有些人遇到的问题与我相同,但解决方案对我来说不起作用。

这是我的代码:

我正在编写一个每10 mS发送一个UDP帧的程序。以下是我的计划应该如何运作:

我有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();
}

为什么定时器无法正常工作?我是否必须把它放在其他地方?

感谢。

0 个答案:

没有答案