Qt:在多线程中创建QTimer

更新时间:2023-06-14 04:02:47 阅读: 评论:0

淄博鲁山Qt:在多线程中创建QTimer
浙东十八潭通过信号启动定时器。
TestClass::TestClass(QWidget *parent)
: QWidget(parent)闹钟铃声怎么设置
{
m_pThread = new QThread(this);
m_pTimer = new QTimer();春分说说
季度考核m_pTimer->moveToThread(m_pThread);
m_pTimer->tInterval(1000);经典童谣
connect(m_pThread, SIGNAL(started()), m_pTimer, SLOT(start()));
connect(m_pTimer, &QTimer::timeout, this, &ThreadTest::timeOutSlot, Qt::DirectConnection);
}
通过moveToThread()⽅法改变定时器所处的线程,不要给定时器设置⽗类,否则该函数将不会⽣效。
怦然心动的英文在信号槽连接时,我们增加了⼀个参数——连接类型,先看看该参数可以有哪些值:
诸葛亮身高Qt::AutoConnection:默认值。如果接收者处于发出信号的线程中,则使⽤Qt::DirectConnection,否则使⽤Qt::QueuedConnection,连接类型由发出的信号决定。
Qt::DirectConnection:信号发出后⽴即调⽤槽函数,槽函数在发出信号的线程中执⾏。
Qt::QueuedConnection:当控制权返还给接收者信号的事件循环中时,开始调⽤槽函数。槽函数在接收者的线程中执⾏。
回到我们的例⼦,⾸先将定时器所处的线程改为新建的线程,然后连接信号槽,槽函数在定时器所处的线程中执⾏。

本文发布于:2023-06-14 04:02:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/949741.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   信号   函数   接收者   连接   类型   所处
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图