如何完全停止QTimer
How to completely stop QTimer
我怎么能完全停止QTimer
? 当我调用QTimer::stop()
时,它没有正确停止。
例如,我创建了一个QTimer
:
QTimer timer;
timer.singleShot(10000, this, [] { emit work_is_down(); });
当我停下来时:
timer.stop();
lambda[] { emit work_is_down(); }
在 10000 毫秒后仍然运行。 如何完全停止它?
QTimer::singleShot
是QTimer
类的static
方法。您可以在实例上调用它,但它将从根本上与该实例断开连接。
你需要做完整的QTimer舞蹈,如上面的评论所述:
QTimer *timer = new QTimer();
QObject::connect(timer, &QTimer::timeout, this, [](){ emit work_is_down(); });
timer->setSingleShot(true);
timer->start(10000);
完成后不要忘记拨打delete timer
或timer->deleteLater()
,或者更好的是,使用std::unique_ptr
或QSharedPointer
。
相关文章:
- 如何找到大小'x'数组是否完全填充,在C++?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 类模板的成员功能的定义在单独的TU中完全专业化
- Python中的for循环与C++有何不同
- 是否应该在模板化代码中完全避免const
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从类型std::函数传递变量失败,尽管调用方期望的类型完全相同
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 在TFHE(完全快速同态加密)上执行除法
- 为什么这些完全相似的代码不起作用?
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 在C++中释放内存期间,迭代器与指针有何不同
- 如何从其他类n个Qt C++调用QTimer?
- 在设计 SDK 时,我是否应该在 C++ 头文件中完全隐藏内部类?
- C++ 中完全自定义的流运算符
- GTK:完全摆脱系统主题/CSS
- 如何完全停止QTimer
- 自制的上衣:看起来一样,但不完全相同
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?