qt - 如何在 QML 中引用调用对象

标签 qt qml

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

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

Connections {
  target: sender //this

  onSendSeekUpdate()
  {
    //do something
  } 
}

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

最佳答案

在 QML 中,您可以使用任何 id作为指针,以及任何 QObject 派生类型属性,因此在您的代码示例中,我们可以更改 targetConnection动态地并且仍然在信号处理程序中使用相同的 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++
    }
}

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

关于qt - 如何在 QML 中引用调用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098196/

相关文章:

c++ - 多个 QMainWindow 实例?

c++ - 获取 QLineEdit 的文本边距

c++ - QML 和 C++ 之间的合适配置

qt - 如何在不缩放的情况下显示/遮盖图像的一部分-QtQuick/QML

c++ - 对包含索引小部件的 QTableView 列进行排序

c++ - 如何编写可以获取 QString 或 std::string 的子字符串的模板函数?

qt - 从 C++ 向 QML Video Player 输入视频数据

qt - WebView显示空白白屏

qml - 如果 qml 行元素内部失败则使用

javascript - QML/JS/REST 认证表单