在qml中调用方法 - 来自c ++的javascript。范围问题

时间:2011-07-26 10:15:00

标签: javascript c++ qml qt-quick

我想在qml中调用一个方法 - 来自c ++的javascript。 基本上我认为我已经完成了文档中所说的一切。 如果它是这样的话,我可以调用该方法:

Rectangle {
......
    Component.onCompleted:{
    ...........
    }

    function foo(arg1, arg2)
    {
        ................
    }
}

但是我不能调用相同的函数,如果我把它放在这样的单独的.js文件中它是这样的:

import ../Script.js as Script
Rectangle {
    .........

    Component.onCompleted:{
       Script.foo(arg1,arg2)
    }

}

脚本已导入所有内容,但我仍然遇到一个问题,即无法识别参数。任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:2)

arg1和arg2是否在Rectangle的某处定义了?

否则它应该可以工作,除了你必须用引号

导入Script.js
import "../Script.js" as Script

我用过的测试

的script.js

function foo(arg1, arg2) {
    print(arg1, arg2)
}

main.qml

import QtQuick 1.0

import "Script.js" as Script

Rectangle {
    width: 360
    height: 360

    Component.onCompleted: {
        Script.foo("a", "b");
    }
}