Qt:使用QString 將C 訊號連接到QML 插槽
在Qt 中,將訊號從C 發送到QML 中的插入槽可以很簡單。然而,當涉及到將 QString 作為參數傳遞時,可能會出現一些挑戰。
問題:
您正在將訊號從 C 物件 (myObj) 連接到QML 檔案中的插槽 (updateViewWithItem)。該插槽被定義為接收 QString 參數,但連線失敗並出現錯誤:「No such slot QDeclarativeRectangle_QML_2::updateViewWithItem(QString)」。
解決方案:使用連接
Qt 建議在此特定場景中使用 Connections,而不是使用傳統的 C 風格插槽訊號連接。
步驟:
在QML 中公開您的C 物件:
在QML 檔案中設定上下文屬性,以使QML 可以存取您的C 物件(myObj)。
<code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
定義您的訊號:
您的訊號應定義如下:
<code class="cpp">finishedGatheringDataForItem(QString signalString)</code>
建立QML 連線:
<code class="qml">Connections { target: YourObject onFinishedGatheringDataForItem: { qmlString = signalString } }</code>
以上是如何將 QString 從 C 訊號傳遞到 QML 插槽?的詳細內容。更多資訊請關注PHP中文網其他相關文章!