Вызов методов в qml - javascript из c ++. Проблема области - PullRequest
2 голосов
/ 26 июля 2011

Я хочу вызвать метод в qml - javascript из c ++. В основном я думаю, что я сделал все, что сказано в документации. Я могу вызвать метод, если это так:

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

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

Но я не могу вызвать одну и ту же функцию, если поместить ее так и в отдельный файл .js, например, так:

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

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

}

Скрипт импортирован и все, но у меня все еще есть проблема, которая говорит, что аргументы не распознаются. Любая помощь будет оценена. Спасибо

1 Ответ

2 голосов
/ 27 июля 2011

Определены ли 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");
    }
}
...