psp1
psp1

Reputation: 537

Can we declare global variable in QML file?

I want to do something similer to following code:

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

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

Can we have global variable in QML file and access it from the JavaScript function?

Upvotes: 22

Views: 28734

Answers (3)

coyotte508
coyotte508

Reputation: 9725

Try property int globalForJs: 10;

If you want a variable that can take any type:

property var globalForJs: 10

Prior to QML 2, use the variant keyword instead of var.

Upvotes: 28

Using int or variant properties do not create a javascript variable, but rather a semantically different generic QML property (see here)

Before Qt 5, global javascript variables were recommended to be defined in a separately imported javascript file, however Qt 5 adds a var type property support.

Upvotes: 8

John Ankanna
John Ankanna

Reputation: 1

the thing which you want to make global should be done like in this example

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

whereever you want to use the name property use like Qt.name instead of just name.this also applicable for any ids of controls

Upvotes: -3

Related Questions