Qt 信号与槽使用错误 :error: no matching function for call to……
程序员文章站
2022-03-02 10:30:18
...
代码:
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*&, <unresolved overloaded function type>, RepositoryWidget*, void (RepositoryWidget::*)(const QString&))'。
方法:
1. 强制类型转换
QObject::connect(comboBoxVersion, static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged), this, &RepositoryWidget::slotDisplayVersion);
2.使用QT5之前的语法
QObject::connect(comboBoxVersion, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(slotDisplayVersion(const QString &)));
上一篇: 如何在Ubuntu16.04中安装QT