3
Windows7でQt5(C++ 11対応)を使用しています。Qt C++ 11ラムダ:この接続(信号スロット)は正しいですか?
connect(ui->alarm, &QCheckBox::stateChanged, [this]{
(ui->alarm->isChecked()) ? m_timer.start() : m_timer.stop();
});
alarm
がQCheckBox
で、m_timer
がQTimer
です:私のアプリで
私はこのような何かを持っています。
アラームチェックボックスのステータスに応じて、オンザフライでタイマーを開始/停止したいとします。
私はテストしましたが、うまくいくようですが、それが100%okかどうかわかりません...またはより良いラムダがあれば?
素晴らしい!私は明日それをテストしますが、それはうまくいくと思います:) –
適切なテストは次のようになります: 'if(state == Qt :: Unchecked)m_timer.stop(); else if(state == Qt :: Checked)m_timer.start(); '。あなたは 'PartiallyChecked'状態を無視するべきです! –
もう一つ:stateChanged(int state)の代わりにsignal toggled(bool checked)を使うことができます。 – user3302274