QML在Javascript设置的属性上返回NaN

时间:2018-02-25 10:20:23

标签: javascript qt qml

我在创建对象时使用java脚本设置QML对象的属性。 除了一个需要数字的参数外,它工作正常。

这会调用脚本:

function modify_jquery() {
if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'https://code.jquery.com/jquery-1.11.3.min.js');
    wp_enqueue_script('jquery');
}
}
add_action('init', 'modify_jquery');

“MAP”之前的300是所需的数字。其他一切都在发挥作用。

Component.onCompleted: CreateVerticalGaugeScript.createVerticalGauge(300,10,300,300,"MAP",Dashboard,"MAP");

现在,当创建对象时,它在QML中具有值NaN。在jas中,console.log向我显示设置了值300。

这是创建的QML:

var component;
var gauge;
function createVerticalGauge(setWidth,setX,setY,setMaxValue,setID,SetValueObject,SetValueProperty) {
    component = Qt.createComponent("verticalbargauge.qml");
    console.log(setMaxValue)
    if (component.status == Component.Ready)
        finishCreation(setWidth,setX,setY,setMaxValue,setID,SetValueObject,SetValueProperty);
    else
        component.statusChanged.connect(finishCreation);
}

    function finishCreation(setWidth,setX,setY,setMaxValue,setID,SetValueObject,SetValueProperty) {
        console.log(setMaxValue)
        if (component.status == Component.Ready) {
            gauge = component.createObject(adaptronicDash, {"id": setID, "gaugemaxvalue": setMaxValue,
                                               "gaugetext": Qt.binding(function(){return SetValueObject[SetValueProperty]}),
                                               "x": setX, "y": setY});
            gauge.width = setWidth;
            if (gauge == null) {
                // Error Handling
                //console.log("Error creating object");
            }
        } else if (component.status == Component.Error) {
            // Error Handling
            //console.log("Error loading component:", component.errorString());
        }
    }

我使用属性别名gaugemaxvalue 来访问该值。如果我直接在Javascript中设置了一个数字,它正在工作。

1 个答案:

答案 0 :(得分:1)

您将Gauge maximumValue设置为300,tickmarkStepSize设置为5000.

通过将maximumValue更改为30000或注释掉tickmarkStepSize进行测试。