如何使用Qtimer添加1秒延迟

拉杰什瓦尔

我目前有一种方法如下

void SomeMethod(int a)
{

     //Delay for one sec.
     timer->start(1000);

     //After one sec
     SomeOtherFunction(a);
}

该方法实际上是连接到信号的插槽。我想使用Qtimer添加一秒的延迟,但是我不确定如何实现这一点。由于计时器在完成时会触发信号,因此该信号将需要附加到不带任何参数的另一种方法上。关于如何完成此任务的任何建议。

更新:该信号将在一秒钟内被多次调用,并且延迟将持续一秒钟。我的问题是将参数传递给附加到计时器timeout()信号的插槽。我的最后一种方法是将值存储在类的成员变量中,然后在使用该变量时使用互斥来保护它不被更改。但是我在这里寻找更简单的方法。

黑暗骑士

我对您的问题表达方式有些困惑,但是如果您要询问如何获取计时器的timeout()信号以调用带有参数的函数,则可以创建一个单独的插槽来接收超时,然后调用您想要的函数。像这样的东西:

class MyClass : public QObject
{
    Q_OBJECT
public:
    MyClass(QObject *parent);

public slots:

    void TimerHandlerFunction();
    void SomeMethod(int a);

private:
    int m_a;
    QTimer m_timer;
};

执行: -

MyClass::MyClass(QObject *parent) : QObject(parent)
{
    // Connect the timer's timeout to our TimerHandlerFunction()
    connect(&m_timer, SIGNAL(timeout()), this, SLOT(TimerHandlerFunction()));
}

void MyClass::SomeMethod(int a)
{
    m_a = a; // Store the value to pass later

    m_timer.setSingleShot(true); // If you only want it to fire once
    m_timer.start(1000);
}

void MyClass::TimerHandlerFunction()
{
    SomeOtherFunction(m_a);
}

请注意,QObject类实际上具有一个计时器,您可以通过调用startTimer()来使用它,因此您实际上不需要在此处使用单独的QTimer对象。它包含在此处以使示例代码更贴近问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为 JavaScript 循环添加 1 秒延迟?

来自分类Dev

如何在执行某些功能之前延迟 1 秒?

来自分类Dev

隐藏元素,1秒延迟

来自分类Dev

我如何使用5秒延迟的for循环删除div

来自分类Dev

如何在iOS8.1上使用Swift连续拍摄多张照片(每张照片延迟1秒)?

来自分类Dev

在 javascript 行之间添加 2 秒延迟

来自分类Dev

如何在下面的代码中为我的 ajax 调用添加 10 秒的延迟

来自分类Dev

如何为这个基于 setInterval 的精灵动画添加 5 秒延迟?

来自分类Dev

想要显示1秒延迟的数字

来自分类Dev

jQuery / CSS:如何在mouseenter事件上延迟1秒应用addClass。

来自分类Dev

如何使bash脚本有一定的延迟运行(即每次迭代等待1秒)?

来自分类Dev

如何在JS中以1秒的延迟逐行制作for循环日志

来自分类Dev

使用 PIC16F887 反转 MicroC 中 PORTB 的值需要 1 秒延迟

来自分类Dev

面对巨大的(25 秒)延迟,如何 ssh?

来自分类Dev

单击按钮后如何延迟 2 秒?

来自分类Dev

如何添加延迟以使用Java显示div?

来自分类Dev

如果在添加作业期间消除了1纳秒的延迟,则std线程作业系统将中止

来自分类Dev

使用 HttpClient 和 Polly 延迟 14 秒

来自分类Dev

如何在Python中使用诸如“ 1小时5秒”之类的字符串添加当前日期

来自分类Dev

如何使用Rails的DateTime类添加分钟和秒

来自分类Dev

使用延迟加载时如何避免N + 1

来自分类Dev

在添加类时使用.each添加延迟

来自分类Dev

在添加类时使用.each添加延迟

来自分类Dev

两个动画之间有1秒的延迟

来自分类Dev

在Windows中以C ++实现小于1毫秒的延迟

来自分类Dev

为什么我的程序不会延迟1秒?

来自分类Dev

Little Man Computer Program输出1,延迟5秒

来自分类Dev

为什么我的程序不会延迟1秒?

来自分类Dev

在aspnet core mvc中删除数据后如何使用jquery延迟3000秒重定向页面

Related 相关文章

  1. 1

    如何为 JavaScript 循环添加 1 秒延迟?

  2. 2

    如何在执行某些功能之前延迟 1 秒?

  3. 3

    隐藏元素,1秒延迟

  4. 4

    我如何使用5秒延迟的for循环删除div

  5. 5

    如何在iOS8.1上使用Swift连续拍摄多张照片(每张照片延迟1秒)?

  6. 6

    在 javascript 行之间添加 2 秒延迟

  7. 7

    如何在下面的代码中为我的 ajax 调用添加 10 秒的延迟

  8. 8

    如何为这个基于 setInterval 的精灵动画添加 5 秒延迟?

  9. 9

    想要显示1秒延迟的数字

  10. 10

    jQuery / CSS:如何在mouseenter事件上延迟1秒应用addClass。

  11. 11

    如何使bash脚本有一定的延迟运行(即每次迭代等待1秒)?

  12. 12

    如何在JS中以1秒的延迟逐行制作for循环日志

  13. 13

    使用 PIC16F887 反转 MicroC 中 PORTB 的值需要 1 秒延迟

  14. 14

    面对巨大的(25 秒)延迟,如何 ssh?

  15. 15

    单击按钮后如何延迟 2 秒?

  16. 16

    如何添加延迟以使用Java显示div?

  17. 17

    如果在添加作业期间消除了1纳秒的延迟,则std线程作业系统将中止

  18. 18

    使用 HttpClient 和 Polly 延迟 14 秒

  19. 19

    如何在Python中使用诸如“ 1小时5秒”之类的字符串添加当前日期

  20. 20

    如何使用Rails的DateTime类添加分钟和秒

  21. 21

    使用延迟加载时如何避免N + 1

  22. 22

    在添加类时使用.each添加延迟

  23. 23

    在添加类时使用.each添加延迟

  24. 24

    两个动画之间有1秒的延迟

  25. 25

    在Windows中以C ++实现小于1毫秒的延迟

  26. 26

    为什么我的程序不会延迟1秒?

  27. 27

    Little Man Computer Program输出1,延迟5秒

  28. 28

    为什么我的程序不会延迟1秒?

  29. 29

    在aspnet core mvc中删除数据后如何使用jquery延迟3000秒重定向页面

热门标签

归档