首頁 > 後端開發 > C++ > 如何將 QString 從 C 訊號傳遞到 QML 插槽?

如何將 QString 從 C 訊號傳遞到 QML 插槽?

Mary-Kate Olsen
發布: 2024-11-05 21:08:02
原創
978 人瀏覽過

How to Pass a QString From a C   Signal to a QML Slot?

Qt:使用QString 將C 訊號連接到QML 插槽

在Qt 中,將訊號從C 發送到QML 中的插入槽可以很簡單。然而,當涉及到將 QString 作為參數傳遞時,可能會出現一些挑戰。

問題:
您正在將訊號從 C 物件 (myObj) 連接到QML 檔案中的插槽 (updateViewWithItem)。該插槽被定義為接收 QString 參數,但連線失敗並出現錯誤:「No such slot QDeclarativeRectangle_QML_2::updateViewWithItem(QString)」。

解決方案:使用連接

Qt 建議在此特定場景中使用 Connections,而不是使用傳統的 C 風格插槽訊號連接。

步驟:

  1. 在QML 中公開您的C 物件:
    在QML 檔案中設定上下文屬性,以使QML 可以存取您的C 物件(myObj)。

    <code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
    登入後複製
  2. 定義您的訊號:
    您的訊號應定義如下:

    <code class="cpp">finishedGatheringDataForItem(QString signalString)</code>
    登入後複製
  3. 建立QML 連線:

    在你的QML 檔案中,加入一個Connections 物件來處理連線。
    <code class="qml">Connections {
        target: YourObject
        onFinishedGatheringDataForItem: {
            qmlString = signalString
        }
    }</code>
    登入後複製

透過使用 Connections,你可以有效地在 C 和 QML 之間建立一座新的橋樑,讓你可以透過QString 作為 QML 槽的參數。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板