2011-11-09 51 views
1

在我的Qt快速應用程序中,我使用C++生成一個介於1和6之間的數字,然後將其發送到QML函數。我有六個自定義Block對象或元素(我不知道你稱他們爲什麼)。這些塊被稱爲block1 - 6。我想要的功能像block"i".visible = true,但我不確定如何做到這一點。如果有人可以請幫助它將不勝感激。Qml編輯變量對象或元素

回答

0

而不是宣佈6個單獨的塊,聲明一個大小爲6的數組,您可以這樣做block[i].visible = true

+1

怎樣申報的6塊QML一個數組? – Gerharddc

+0

var block = [];它必須以Javascript樣式嵌入或在外部Javascript文件中完成。現在,當你想創建一個「塊」(一個可視化的QML元素)時,你需要像這樣分配它,一種動態的方式,block [0] = Qt.createComponent(「Block.qml」); – RajaRaviVarma

1

這裏是你可以避免手動創建在JavaScript中塊的方式:

假設所有的塊相同的父的孩子,你可以訪問他們的parentsId.children[0]通過parentsId.children[5](或parentsId.children[n]通過parentsId.children[n+5]如果父有n在盒子前面的孩子)。

因此,像這樣的工作:

Rectangle { 
    // ... 

    Item { 
     id: blocks 

     Block { 
      id: block1 
      // ... 
     } 
     // ... 

     Block { 
      id: block6 
      // ... 
     } 
    } 
    // ... 

    function makeBlockVisible(i) { 
     // subtracting 1 from i because you said i is a number between 1 and 6 
     // and we need an index between 0 and 5 
     blocks.children[i-1].visible = true; 
    } 
}