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

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 &)));

 

相关标签: QT