סטנ*_*ונן 3 lambda qt signals-slots c++11
我在Windows7上使用Qt5(启用了C++ 11).
在我的应用程序中,我有这样的事情:
connect(ui->alarm, &QCheckBox::stateChanged, [this]{
(ui->alarm->isChecked()) ? m_timer.start() : m_timer.stop();
});
Run Code Online (Sandbox Code Playgroud)
这里alarm是QCheckBox和m_timer是QTimer.
我想根据闹钟复选框的状态动态启动/停止计时器.
我测试过,它似乎有效,但我不确定它是否100%正常......或者是否有更好的lambda可以做到这一点?
connect(ui->alarm, &QCheckBox::stateChanged, [this](int state){
state ? m_timer.start() : m_timer.stop();
});
Run Code Online (Sandbox Code Playgroud)
这样你就不需要参考了ui->alarm.
在QCheckBox::stateChanged(int state),state真的是一个
枚举Qt :: CheckState
Qt :: Unchecked = 0 未选中该项目.
Qt :: PartiallyChecked = 1部分检查项目.如果检查了他们的孩子中的一些但不是全部,则可以部分地检查分层模型中的项目.
Qt :: Checked = 2检查项目.