2011-09-22 69 views
18

は、私は次のコードとsimiler何かをしたい:グローバル変数をQMLファイルで宣言できますか?

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

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

我々はQML fileでグローバル変数を持ち、JavaScript関数からアクセスすることができますか?

property var globalForJs: 10

前QML 2に、代わりにvarvariantキーワードを使用する:あなたは任意の型を取ることができ、変数をしたい場合は

答えて

24

property int globalForJs: 10;

を試してみてください。 intまたはvariant性質はjavascriptの変数ではなく、意味的に異なる、一般的なQMLのプロパティを作成していない使用

+0

QMLファイル自体にあるJavaスクリプト関数から、この「プロパティバリアントglobalForJs:10」にアクセスできますか? – psp1

+0

はいできます。 QMLオブジェクトのすべてのプロパティは、その内部で定義された任意のJavaScript関数によってアクセスできます。 – coyotte508

+0

しかし、このプロパティを 'private'にする方法は他のQMLには見られませんか? – KernelPanic

7

see here

のQt 5の前に、グローバルjavascriptの変数は、個別にインポートするJavaScriptファイルで定義することが推奨されましたQt 5にはvarタイプproperty supportが追加されています。

-3

あなたがQt.nameだけではなくname.thisも適用コントロール

のいずれかのIDのような名前のプロパティの使用を使用したいwhereeverあなたがグローバルにしたい事は、この例では

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

のように行われるべきです

関連する問題