1. ホーム
  2. qt

Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error: error

2022-02-13 20:38:35

コード

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

connectはQt 5の構文を使用しており、問題はcurrentIndexChanged関数のオーバーロードによるもので、2つの異なる形式パラメータを持っています。
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 &)));