Qml edit переменный объект или элемент - PullRequest
1 голос
/ 09 ноября 2011

В моем приложении Qt quick я использую c ++ для генерации числа от 1 до 6, которое затем отправляется с сигналом в функцию QML. У меня есть шесть пользовательских Block объектов или элементов (я не уверен, как вы их называете). Блоки называются block1 - 6. Я хочу, чтобы эта функция была похожа на block"i".visible = true, но я точно не знаю, как это сделать. Если кто-то может помочь, это будет с благодарностью.

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Вот способ избежать ручного создания блоков в javascript:

Предполагая, что все блоки являются дочерними для одного и того же родителя, вы можете получить к ним доступ как от parentsId.children[0] до parentsId.children[5] (или *От 1005 * до 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;
    }
}
0 голосов
/ 09 ноября 2011

вместо объявления 6 отдельных блоков, объявите массив размером шесть, и вы можете сделать это block[i].visible = true.

...