今天在使用QComboBox进行信号与槽绑定时遇见错误
connect(ui->Gain,&QComboBox::activated,this,&MainWindow::ComSignals);
给出提示
C:\Users\TT\Desktop\qt\TcpCharts2\mainwindow.cpp:25: error: no matching function for call to 'MainWindow::connect(QComboBox*&, <unresolved overloaded function type>, MainWindow*, void (MainWindow::*)(int))'
connect(ui->Gain,&QComboBox::activated,this,&MainWindow::ComSignals);
^
原因
在使用QComboBox类的信号函数时,因为函数currentIndexChanged重载,出现多个参数,导致Qt5编译器不知道要匹配那个函数,于是就出现了unresolved overloaded function type这种情况
void currentIndexChanged(int index);
void currentIndexChanged(const QString &);
进行强制转换就可以解决该问题
connect(ui->Gain,static_cast<void (QComboBox::*)(int index)>(&QComboBox::activated),this,&MainWindow::ComSignals);