QT由于函数重载创建函数指针的方法
// 创建两个部件 QSpinBox *spinBox = new QSpinBox(&window); QSlider *slider = new QSlider(Qt::Horizontal, &window); spinBox->setRange(0, 130); slider->setRange(0, 130); // 将两个部件数据捆绑 QObject::connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);
// QT文档可知QSpinBox::valueChanged被重载,所以需要创建函数指针指定类型 void (QSpinBox:: *spinBoxSignal)(int) = &QSpinBox::valueChanged; QObject::connect(spinBox, spinBoxSignal, slider, &QSlider::setValue);
或者改为
QObject::connect(spinBox,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
slider, &QSlider::setValue);