欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

error: no matching member function for call to 'connect'

程序员文章站 2022-03-30 21:56:15
...

error: no matching member function for call to ‘connect’

包括connect之外的函数也可能会出现这种错误,目前遇到的一种错误,例:

  //出错函数
connect(ui->spinBox_HEX,&QSpinBox::valueChanged,[=](){
    });
//QSpinBox::valueChanged函数声明
Q_SIGNALS:
    void valueChanged(int);
    void valueChanged(const QString &);

这样的信号连接格式是没问题的,但是QSpinBox::valueChanged函数有重载,编译器不知道用哪种重载,就会出现这个错误。我们使用的是 void valueChanged(const QString &);格式,因此在connect中使用强制类型转换

//强制类型转换后
connect(ui->spinBox_HEX,static_cast<void (QSpinBox::*)(const QString &)>(&QSpinBox::valueChanged),[=](){
 });//static_cast<void (QSpinBox::*)(const QString &)>(&QSpinBox::valueChanged)
相关标签: QT