Qt 信号与槽使用错误 :error: no matching function for call to……

代码:

QObject::connect(comboBoxVersion, &QComboBox::currentIndexChanged, this, &RepositoryWidget::slotDisplayVersion);

执行上面语句,提示如下错误,connect 采用的是 Qt 5 的语法,问题原因是函数 currentIndexChanged 函数重载,有两个不同形参:
void currentIndexChanged(int index)和 void currentIndexChanged(const QString &)
编译器不知道要使用哪个函数。

error: no matching function for call to 'RepositoryWidget::connect(QComboBox*&, , RepositoryWidget*, void (RepositoryWidget::*)(const QString&))'。

方法:

1. 强制类型转换

QObject::connect(comboBoxVersion, static_cast(&QComboBox::currentIndexChanged), this, &RepositoryWidget::slotDisplayVersion);

2.使用QT5之前的语法

QObject::connect(comboBoxVersion, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(slotDisplayVersion(const QString &)));

 

你可能感兴趣的:(qt)