如何在单独的文件中定义 js 函数但将其附加到 QML 元素

joh*_*ers 5 qt qml qtquick2

我可以做这个:

SomeElement{
    id: something
    function someFunction(){...}
....

OtherElement{
     property int whatever: something.someFunction()
Run Code Online (Sandbox Code Playgroud)

但是,我希望将所有 JS 函数定义在一个单独的文件中。问题是,据我所知,这将函数与附加到任何一个元素分离。我不能再将一个函数称为另一个元素的属性来调用它。

是否可以将函数附加到 QML 元素但仍将其定义在另一个文件中?是否有一些语法可以“转发”或“别名”元素中的函数,以便仍然可以在元素上调用此“成员函数”,从而该函数可以访问其父元素上的其他属性?

Kak*_*adu 0

您可以尝试将 js 文件导入为某个模块,并使用带有模块名称前缀的函数。因此,它们将位于与 QML 对象的函数不同的“命名空间”中

有关它的文档:http://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-imports.html