QT 同名信號無法識別的問題


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) {
		// 槽函數實現

		});

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM