2011-09-22 9 views
18

quiero hacer algo homologable al siguiente código:¿Podemos declarar la variable global en el archivo QML?

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

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

podemos tener variable global en QML file y acceder a ella desde la función de JavaScript?

Respuesta

24

Trate property int globalForJs: 10;

Si desea una variable que puede tomar cualquier tipo:

property var globalForJs: 10

Antes de QML 2, utilice la palabra clave en lugar de variantvar.

+0

Gracias por la respuesta, ¿se puede acceder a esta 'variante de propiedad globalForJs: 10' desde la función de script java que está en el archivo QML mismo? – psp1

+0

sí, puede. Se puede acceder a todas las propiedades de un objeto QML mediante cualquier función de javascript definida en su interior. – coyotte508

+0

Pero, ¿cómo hacer que esta propiedad sea 'privada', por lo que no se ve en otras cosas de QML? – KernelPanic

7

Usando int o variant propiedades no crear una variable de JavaScript, sino más bien una propiedad QML genérica semánticamente diferente (see here)

Antes de Qt 5, se recomienda variables JavaScript globales que definirse en una importados por separado archivo javascript, sin embargo Qt 5 agrega un var tipo property support.

-3

lo que desea hacer global debería hacerse como en este ejemplo

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

dondequiera que usted desee utilizar el uso nombre de la propiedad como Qt.name en lugar de sólo name.this también es aplicable para los ID de los controles

Cuestiones relacionadas