首页  >  文章  >  后端开发  >  如何使用 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 插槽

问题:

尝试发送 QString 时从 C 信号到 QML 槽的参数,会出现错误,指出“没有这样的槽QDeclarativeRectangle_QML_2::updateViewWithItem(QString)."

解决方案:

使用连接

要解决此问题,连接应该被使用而不是直接槽

  1. 将 C 对象暴露给 QML:
    使用主 C 中的 setContextProperty() 将 C 对象 (myObj) 添加到 QML 上下文属性代码。

    <code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
  2. 定义信号:
    在 C 中,将信号定义为:

    <code class="cpp">finishedGatheringDataForItem(QString signalString);</code>
  3. 添加连接QML:

    在QML文件中,添加与暴露对象的连接:

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

通过使用连接,QML槽可以接收QString参数正确无误,没有之前的错误。

以上是如何使用 QString 参数将 C 信号连接到 QML 插槽?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn