从c++调用qml - javascript中的方法.范围的问题

Calling methods in qml - javascript from c++. Scope problem

本文关键字:方法 范围 问题 javascript c++ 调用 qml      更新时间:2023-09-26

我想从c++调用qml - javascript中的方法。基本上,我认为我已经完成了文档中所说的所有内容。我可以像这样调用这个方法:

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

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

import ../Script.js as Script
Rectangle {
    .........
    Component.onCompleted:{
       Script.foo(arg1,arg2)
    }
}

脚本被导入,但我仍然有一个问题,说参数不被识别。任何帮助都将不胜感激。由于

arg1和arg2定义在您的矩形的某处?

否则它应该工作,除了你必须导入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");
    }
}