C++ 将信号连接到c++;QT5中的11个lambdas

C++ 将信号连接到c++;QT5中的11个lambdas,c++,qt,c++11,C++,Qt,C++11,我尝试将QDoubleSpinBox信号连接到c++11 lamda: QObject::connect(sbox_roughness, &QDoubleSpinBox::valueChanged, [=]() { std::cout << "value changed" << std::endl; }); 我在这里遗漏了什么?你面临着不匹配的争论。应该是这样的: QObject::connect(sbox_roughness, s

我尝试将QDoubleSpinBox信号连接到c++11 lamda:

QObject::connect(sbox_roughness, &QDoubleSpinBox::valueChanged,
               [=]() { std::cout << "value changed" << std::endl; });

我在这里遗漏了什么?

你面临着不匹配的争论。应该是这样的:

QObject::connect(sbox_roughness, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
           [=](double val) { std::cout << "value changed" << std::endl; });
QObject::connect(sbox\u粗糙度、静态\u投射(&QDoubleSpinBox::valueChanged),
[=](双val){std::cout
此操作失败,因为
QDoubleSpinBox
没有
valueChanged(int)
信号

这将有助于:

QObject::connect(&spinbox, static_cast<void (QDoubleSpinBox::*)(double)>(
                                  &QDoubleSpinBox::valueChanged),
                []() {  qDebug() << "value changed"; });

QObject::connect(&spinbox, static_cast<void (QDoubleSpinBox::*)(const QString &)>(
                                  &QDoubleSpinBox::valueChanged),
                []() {  qDebug() << "value changed"; });
QObject::连接(&spinbox),静态\u转换(
&QDoubleSpinBox::valueChanged),

[](){qDebug()您的答案已将它们更改为我的答案。当然,它不适用于:(QDoubleSpinBox::*)(int)>(&QDoubleSpinBox::valueChanged)。很抱歉监督此操作!回答正确!
error: no matches converting function ‘valueChanged’ to type ‘void (class QDoubleSpinBox::*)(int)’
                                    &QDoubleSpinBox::valueChanged),
QObject::connect(sbox_roughness, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
           [=](double val) { std::cout << "value changed" << std::endl; });
QDoubleSpinBox spinbox;

QObject::connect(&spinbox, &QDoubleSpinBox::valueChanged,
                 []() { qDebug() << "value changed"; });
QObject::connect(&spinbox, static_cast<void (QDoubleSpinBox::*)(int)>(
                                  &QDoubleSpinBox::valueChanged),
                []() {  qDebug() << "value changed"; });
QObject::connect(&spinbox, static_cast<void (QDoubleSpinBox::*)(double)>(
                                  &QDoubleSpinBox::valueChanged),
                []() {  qDebug() << "value changed"; });

QObject::connect(&spinbox, static_cast<void (QDoubleSpinBox::*)(const QString &)>(
                                  &QDoubleSpinBox::valueChanged),
                []() {  qDebug() << "value changed"; });