2011-09-22 9 views
18

मैं कुछ निम्नलिखित कोड को similer क्या करना चाहते हैं:क्या हम क्यूएमएल फ़ाइल में ग्लोबल वैरिएबल घोषित कर सकते हैं?

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

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

हम QML file और जावास्क्रिप्ट समारोह से यह उपयोग में वैश्विक चर मिल सकता है?

उत्तर

24

property int globalForJs: 10;

प्रयास करें आप एक ऐसा वैरिएबल किसी भी प्रकार के ले जा सकते हैं चाहते हैं:

property var globalForJs: 10

QML 2 करने से पहले, var के बजाय variant कीवर्ड का उपयोग करें।

+0

उत्तर के लिए धन्यवाद, क्या यह 'प्रॉपर्टी वैरिएंट ग्लोबलफॉरजेएस: 10' जावा स्क्रिप्ट फ़ंक्शन से एक्सेस किया जा सकता है जो QML फ़ाइल में ही है? – psp1

+0

हाँ यह कर सकता है। एक QML ऑब्जेक्ट के सभी गुणों को इसके अंदर परिभाषित किसी भी जावास्क्रिप्ट फ़ंक्शन द्वारा एक्सेस किया जा सकता है। – coyotte508

+0

लेकिन इस संपत्ति को 'निजी' कैसे बनाया जाए, तो यह अन्य QML सामानों द्वारा नहीं देखा जाता है? – KernelPanic

7

का उपयोग int या variant गुण JavaScript वैरिएबल का निर्माण नहीं करतीं, बल्कि एक शब्दार्थ विभिन्न सामान्य QML संपत्ति (see here)

क्यूटी 5 से पहले, वैश्विक जावास्क्रिप्ट चर एक अलग से आयातित जावास्क्रिप्ट फाइल में परिभाषित किए जाने की अनुशंसा की गई थी, हालांकि क्यूटी 5 var टाइप property support जोड़ता है।

-3

बात जो आप वैश्विक बनाना चाहते इस उदाहरण

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

जहाँ आप नियंत्रण

के किसी भी आईडी के लिए सिर्फ name.this भी लागू करने के बजाय Qt.name की तरह नाम संपत्ति उपयोग का उपयोग करना चाहते में की तरह किया जाना चाहिए
संबंधित मुद्दे