@dmitry__maslov

QML. Repeater. Как узнать Index каждого элемента Repeater?

Определенное количество кнопок создается с помощью Repeater(ListModel). Как обратится к определенной кнопки и узнать ее параметры(X, Y)?
main.qml
Repeater {
    model: buttons

    buttons{

    }

    ListModel { // модель для кнопок 
        id: buttons
        ListElement { model_button_text: "1"; }
        ListElement { model_button_text: "2"; }

buttons.qml
Button{
id: btn
Layout.preferredWidth: Screen.pixelDensity * 18
Layout.preferredHeight: Screen.pixelDensity * 21
Text{
    anchors.centerIn: parent
    text:model_button_text
    font.pixelSize: Screen.pixelDensity * 5
    color: "#056699"
    font.bold: true
}

background: Rectangle{
    color:"black"
    //radius: 2
    border.width: 2
    border.color: "#056699"
}}

Мне нужно при нажатии на другую кнопку, обращаться к определенной кнопки(созданной Repeater) и получать ее X и Y(координаты).
  • Вопрос задан
  • 1725 просмотров
Пригласить эксперта
Ответы на вопрос 1
@eeiaao
Так, например
SomeRoot {
    id: root

    Repeater {
        model: buttons
        delegate: SomeDelegate {}
   }

Component.onCompleted: {
   [].slice.call(root.children, 0, root.children.length - 1).forEach(function (item) { console.warn(item.x) });   
}

Или так:
Repeater {
    id: repeater

    model: buttons
    delegate: SomeDelegate {}

    Component.onCompleted: {
        for (var i = 0; i < repeater.count; ++i)
            console.warn(repeater.itemAt(i).x);
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы