函数的二义性
本文由 简悦 SimpRead 转码, 原文地址 www.cnblogs.com
connect(ui->spinBox_luminosity,&QSpinBox::valueChanged,
ui->horizontalSlider_luminosity, &QSlider::setValue);
执行上面语句,提示如下错误。connect 采用的是 Qt 5 的语法,问题原因是函数 valueChanged 有两个形态:QSpinBox::valueChanged(int) 和 QSpinBox::valueChanged(QString),编译器不知道要使用哪个函数
no matching function for call to QObject::connect(QSpinBox&,
解决方法
1、强制类型转换
connect(ui->spinBox_luminosity,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
ui->horizontalSlider_luminosity, &QSlider::setValue);
2、使用 Qt 5 之前的语法
connect(ui->spinBox_luminosity, SIGNAL(valueChanged(int)),
ui->horizontalSlider_luminosity, SLOT(setValue(int)));