4

有没有办法在 QML 中获取对调用对象的引用?我正在查看与 QML 中的“this”指针等效的东西

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

Connections {
  target: sender //this

  onSendSeekUpdate()
  {
    //do something
  } 
}

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

4

1 回答 1

4

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

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++
    }
}

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

于 2013-03-27T20:56:59.580 回答