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 が使えるとだいぶコードがすっきりしますね。
便利。