Qt5 の connect を lambda expressions で試してみた
なんとか手元で Qt5 を動かすことが出来たので connect で lambda expressions を 試してみました。
[ソース]
#include <QtWidgets/QApplication> #include <QtWidgets/QPushButton> #include <QtWidgets/QSlider> #include <iostream> #include <string> int main(int argc, char* argv[]){ QApplication app(argc, argv); int count = 10; QPushButton button("Quit"); button.show(); QObject::connect(&button, &QPushButton::clicked, []{ std::cout << "homu" << std::endl; }); QObject::connect(&button, &QPushButton::clicked, [&]{ --count; std::cout << count << std::endl; if( count <= 0 ){ app.quit(); } }); QSlider slider; slider.show(); QObject::connect(&slider, &QSlider::valueChanged, [](int value){ std::cout << value << std::endl; }); return app.exec(); }
やはり lambda expressions が使えるとだいぶコードがすっきりしますね。
便利。