QCompleter 類有如下信號
Q_SIGNALS: void activated(const QString &text); void activated(const QModelIndex &index);
按照以往的寫法,會如下去連接信號
connect(mCompleterPtr, &QCompleter::activated, this, [this](const QString& text) { // 槽函數實現 });
編譯代碼會報如下錯誤:
1>error C2664: “QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const”: 無法將參數 2 從“overloaded-function”轉換為“const char *” 1> message : 上下文不允許消除重載函數的歧義 1> message : 參見“QObject::connect”的聲明
采用如下連接方式可以解決上述問題
connect(mCompleterPtr, static_cast<void(QCompleter::*)(const QString&)>(&QCompleter::activated), this, [this](const QString& text) { // 槽函數實現 });