如何在 QML 中引用调用对象

Spo*_*rth 5 qt qml

有没有办法获取 QML 中调用对象的引用?我正在寻找相当于 QML 中“this”指针的东西

示例:假设我有一个组件,用作图形元素的后端,例如视频播放器的搜索栏。该后端将视频的当前持续时间和总持续时间作为输入,并定期向图形搜索栏提供更新。现在,如果此后端中有一个信号处理程序用于发送当前持续时间和总持续时间的信号,则它可能看起来像这样:

Connections {
  target: sender //this

  onSendSeekUpdate()
  {
    //do something
  } 
}
Run Code Online (Sandbox Code Playgroud)

当然我猜这可以用C++实现,然后导入到QML中。但我只是想知道 QML 是否也支持这个?这样我就可以直接在 QML 中编写这样的钩子。

The*_*roo 4

在 QML 中,您可以使用 anyid作为指针,以及任何 QObject 派生类型属性,因此在您的代码示例中,我们可以动态更改 的 ,target并且Connection仍然在信号处理程序中使用相同的 var 来指向发送者:

Connections {
    target: myitem; // change it when you need
    onMySignal: {
        target.doSomething(); // just use target here as it points on the listened object
        // it's just like 'sender()' in Qt/C++
    }
}
Run Code Online (Sandbox Code Playgroud)

不确定这是否是您所要求的,但我试图理解您的解释;-)