新线程中使用QTimer出现Timers can only be used with threads started with QThread
Unsolved
Chinese
-
void Widget::start_time()
{
timethread =new QThread;
time2=new QTimer;
time2->setInterval(2000);
time2->moveToThread(timethread);
connect(timethread,&QThread::finished,time2,&QTimer::deleteLater);
connect(time2,&QTimer::timeout,[=]{
Widget::ontime_1();
});
timethread->start();
time2->start();}
time2启动不了 -
@verycuteman QTimer的创建和启动必须在同一线程。
你这里是在主线程创建了定时器然后在子线程启动它,这是不允许的。
可以试试继承QThread并在其子类的run里启动你的定时器。