首頁  >  文章  >  後端開發  >  如何使用 QString 參數將 C 訊號連接到 QML 插槽?

如何使用 QString 參數將 C 訊號連接到 QML 插槽?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 02:53:29451瀏覽

How to Connect C   Signals to QML Slots with QString Parameters?

將C 訊號連接到QML 插槽

問題:

問題:

從C 訊號到QML 槽的參數,會出現錯誤,指出「沒有這樣的槽QDeclarativeRectangle_QML_2::updateViewWithItem(QString)。」

解決方案:

解決方案:
  1. 解🎜 >使用連接

    要解決此問題,應使用連接而不是直接槽連接。
    <code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
  2. 將 C 物件暴露給 QML:
    在主 C 程式碼中使用 setContextProperty() 將 C 物件 (myObj) 新增至 QML 上下文屬性。

    <code class="cpp">finishedGatheringDataForItem(QString signalString);</code>
  3. 定義訊號:

    在C 中,將訊號定義為:

    <code class="qml">Connections {
        target: YourObject
        onFinishedGatheringDataForItem: {
            qmlString = signalString
        }
    }</code>

在QML 中新增連接:在QML 檔案中,新增連接到暴露的物件:透過使用連接, QML slot 可以正確接收QString 參數,而不會出現先前的錯誤。

以上是如何使用 QString 參數將 C 訊號連接到 QML 插槽?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn