我们可以在QML文件中声明全局变量吗?

时间:2011-09-22 13:33:58

标签: javascript qml

我想做类似于以下代码的事情:

//test.qml
import QtQuick 1.0
Item 
{
    var globalforJs =10;

    function increment() // JavaScript function
    {
        globalforJs++;
    }
    ....
QML Code

我们可以在QML file中使用全局变量并从JavaScript函数中访问它吗?

3 个答案:

答案 0 :(得分:24)

尝试property int globalForJs: 10;

如果你想要一个可以采用任何类型的变量:

property var globalForJs: 10

在QML 2之前,请使用variant关键字而不是var

答案 1 :(得分:8)

使用intvariant属性不会创建javascript变量,而是创建一个语义上不同的通用QML属性(see here

在Qt 5之前,建议在单独导入的javascript文件中定义全局javascript变量,但是Qt 5会添加var类型property support

答案 2 :(得分:-3)

你想要制作全局的东西应该像这个例子那样完成

property variant name:"john"//i want this to be global
onCreationCompleted(){
Qt.name = name
}

如果您想使用名称属性,请使用Qt.name,而不只是name.this也适用于任何控件ID