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

发布于 2024-11-26 20:49:21 字数 495 浏览 0 评论 0原文

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

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

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

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

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

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

}

脚本已导入,一切都已导入,但我仍然有问题这表明这些论点不被认可。任何帮助将不胜感激。谢谢

I want to call a method in qml - javascript from c++.
Basically I think that I have done everything that is said in documentation.
I can call the method if it is like this:

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

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

But I can't call the same function if I put it like this and in a separate .js file it like this:

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

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

}

The script is imported and everything, but I still have a problem that says that the arguments are not recognized. Any help will be appreciated. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

被你宠の有点坏 2024-12-03 20:49:21

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");
    }
}

Are arg1 and arg2 defined somewhere in your Rectangle?

Else it should work, except that you have to import the Script.js with quotation marks

import "../Script.js" as Script

For testing I used

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");
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文