首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何完全停止QTimer

如何完全停止QTimer
EN

Stack Overflow用户
提问于 2020-06-15 12:24:17
回答 1查看 757关注 0票数 0

我怎么能完全阻止QTimer呢?当我调用QTimer::stop()时,它没有正确地停止。

例如,我创建了一个QTimer

代码语言:javascript
复制
QTimer timer;
timer.singleShot(10000, this, [] { emit work_is_down(); });

当我停下来:

代码语言:javascript
复制
timer.stop();

lambda [] { emit work_is_down(); }仍然运行在10000 is之后。怎样才能完全阻止它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 13:05:55

QTimer::singleShotQTimer类的static方法。您可以在实例上调用它,但它将从根本上与该实例断开连接。

您需要完成完整的QTimer舞蹈,如上面的注释中所述:

代码语言:javascript
复制
QTimer *timer = new QTimer();
QObject::connect(timer, &QTimer::timeout, this, [](){ emit work_is_down(); });
timer->setSingleShot(true);
timer->start(10000);

当您完成delete timertimer->deleteLater()时,不要忘记调用它,或者更好的是,使用std::unique_ptrQSharedPointer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62388181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档