小编bin*_*nzo的帖子

Qml 属性挂钩

假设有一个Test带有foo属性调用的Qml类型,它的实现如下: Test.qml

// Not necessarily QtObject, but derived from QObject
QtObject {
    // Not necessarily var/property, but must behave like property (i.e. be accessible using "<instance>.foo")
    property var foo
}
Run Code Online (Sandbox Code Playgroud)

并以下列方式使用: main.qml

import "."

Test {
    id: _test
}

function baz() {
    var x = _test.foo;
    _test.foo = x;
}
Run Code Online (Sandbox Code Playgroud)

我想要的是每次foogetter 或 setter 访问属性时都得到通知。对于 setter,也许我可以使用fooChanged信号,但是对于 getter 没有这样的解决方案。我也可以将Test类型实现为C++带有Q_PROPERTY宏的类,并从属性 getter/setter 中发出相应的信号,但我真的很想将大部分代码留在 Qml 端。

还有其他方法可以挂钩 Qml 属性访问吗?

javascript c++ qt qml

4
推荐指数
1
解决办法
1386
查看次数

标签 统计

c++ ×1

javascript ×1

qml ×1

qt ×1