首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt C++11 lambda:这个连接(信号插槽)正确吗?

Qt C++11 lambda:这个连接(信号插槽)正确吗?
EN

Stack Overflow用户
提问于 2016-06-21 11:41:23
回答 1查看 970关注 0票数 4

我正在Windows7上使用C++11(启用了C++11)。

在我的应用程序中,我有这样的东西:

代码语言:javascript
复制
connect(ui->alarm, &QCheckBox::stateChanged, [this]{
  (ui->alarm->isChecked()) ? m_timer.start() : m_timer.stop();
});

其中alarmQCheckBoxm_timerQTimer

根据报警器的状态,我想启动/停止定时器。

我测试过了,看起来很有效,但我不确定它是否100%还好.或者如果有更好的羔羊来做的话,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 14:04:04

代码语言:javascript
复制
connect(ui->alarm, &QCheckBox::stateChanged, [this](int state){
  state ? m_timer.start() : m_timer.stop();
});

这样您就不需要引用ui->alarm了。

QCheckBox::stateChanged(int state)中,state实际上是一个

枚举Qt::CheckState Qt:: unchecked =0该项目未被选中。 Qt::PartiallyChecked =1对项目进行部分检查。如果检查了一些(但不是全部)其子项,则可以对分层模型中的项进行部分检查。 Qt:: checked =2--该项目被选中。

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

https://stackoverflow.com/questions/37943452

复制
相关文章

相似问题

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