QTimer定时器不起作用的原因

⌚Time: 2022-06-23 20:11:16

👨‍💻Author: Jack Ge

一开始我是这样写的


    QTimer timer;

    timer.start(1000);

    connect(&timer,SIGNAL(timeout()),this,SLOT(func1()));

而这样写就可以正常起作用


    QTimer *timer = new QTimer;

    timer->start(1000);

    connect(timer,SIGNAL(timeout()),this,SLOT(func1()));

原因就是一开始在栈里的定时器变量在离开作用域之后被自动销毁了。而使用new出来的堆里面的变量只有手动释放才会被销毁。