Qt中多个定时器共享一个槽函数,怎么确定是哪个定时器超时呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt中多个定时器共享一个槽函数,怎么确定是哪个定时器超时呢?相关的知识,希望对你有一定的参考价值。

Qt中多个定时器共享一个槽函数,怎么确定是哪个定时器超时呢

参考技术A 超时时间如果不一样的话,它应该是按时间顺序,循环调用的。可以设定标记,第一次是哪一个,第二次调用是哪一个。
另外,可以给每个定时器设定不同的槽函数,在槽函数里调用同一个函数。就知道了。

关于Qt在新线程中创建定时器的问题

想在新创建的线程中定义一个100ms的定时器,一旦timeout就调用槽函数发送网

络数据
但成功启动线程后从未跳入槽函数,为什么鸟?
代码大致如下:

// .h文件
#include<QThread>
#include<QTimer>

class NewThread : public QThread

public:
NewThread();
QTimer *m_timer;

private slots:
void sSend();


// .cpp文件
#include ".h"

NewThread::NewThread()

m_timer = new QTimer(this);


NewThread::run()

m_timer->start(100);
connect(m_timer, SIGNAL(timeout()), this, SLOT(sSend()));

while(1)

Sleep(1);



NewThread::sSend()

...

参考技术A NewThread::sSend()

...

返回类型都没有···

以上是关于Qt中多个定时器共享一个槽函数,怎么确定是哪个定时器超时呢?的主要内容,如果未能解决你的问题,请参考以下文章

Qt编程中信号与槽机制可以用啥方法替换

QT一个信号可以触发多个槽吗?

QT singleShot设置循环

12个QT基本对话框,以及淡入原理(用定时器把窗口逐渐变成透明)

关于Qt在新线程中创建定时器的问题

QT中定时器的使用方法