Russian Qt Forum

Qt => Qt Quick => Тема начата: WeX от Июль 15, 2011, 17:54



Название: PathView + ListModel
Отправлено: WeX от Июль 15, 2011, 17:54
Всем доброго времени суток. Суть проблемы такова, есть PathView, и в отдельном файле есть ListModel с несколькими элементами.

Сам PathView с делегатом:
Код:
Component {
        id: buttonDrawer
        Item {
            width: 100; height: 100
            scale: PathView.iconScale

            Image {
                id: myIcon
                y: 10; anchors.horizontalCenter: parent.horizontalCenter
                source: icon
                smooth: true
            }
            Text {
                anchors { top: myIcon.bottom; horizontalCenter: parent.horizontalCenter }
                text: capt
                smooth: true
                color: "#c8c8c8"
            }
        }
    }

    Component {
        id: appHighlight
        Rectangle {
            width: 80; height: 80; color: "silver"; opacity: 0.3
        }
    }

    PathView {
        id: view

        anchors.fill: parent
        anchors.leftMargin: 200
        anchors.rightMargin: 200

        highlight: appHighlight
        preferredHighlightBegin: 0.5
        preferredHighlightEnd: 0.5
        focus: true
        model: Model1 {}
        delegate: buttonDrawer
        path: Path {
            startX: 10
            startY: 0
            PathAttribute { name: "iconScale"; value: 0.5 }
            PathQuad { x: 200; y: 60; controlX: 50; controlY: 100 }
            PathAttribute { name: "iconScale"; value: 1.0 }
            PathQuad { x: 390; y: 0; controlX: 350; controlY: 100 }
            PathAttribute { name: "iconScale"; value: 0.5 }
        }
    }

Ну и модель:
Код:
ListModel {
    ListElement {
        name: "prog1"
        icon: "./icon1.png"
        appSource: "./prog1"
    }
    ListElement {
        name: "prog2"
        icon: "./icon2.png"
        appSource: "./prog2"
    }
    ListElement {
        name: "prog3"
        icon: "./icon3.png"
        appSource: "./prog3"
    }
}

Необходимо после того как будет выбран элемент в PathView, тобишь по событию onMovementEnded, как-то получить значение из свойства name текущего элемента, у меня это никак не получается, потому-что он его не видит =( Как можно это реализовать?


Название: Re: PathView + ListModel
Отправлено: twp от Июль 15, 2011, 18:05
а что это?
Цитировать
Код:
model: Model1 {}


Название: Re: PathView + ListModel
Отправлено: WeX от Июль 16, 2011, 06:00
Эмм, ну я так указывал на модель ему, Model1.qml это файл с моделью. В каком-то из примеров видел такую реализацию. А надо как-то по другому? Просто с QML ещё несовсем хорошо разбираюсь ибо не так давно начал его изучать.


Название: Re: PathView + ListModel
Отправлено: Ubuntu_linux от Июль 16, 2011, 12:20
Когда  елемент выбран то емит сигнал с нужными свойствами делегата


Название: Re: PathView + ListModel
Отправлено: WeX от Июль 16, 2011, 12:32
А можно примерчик? А то я запутался уже =)


Название: Re: PathView + ListModel
Отправлено: twp от Июль 18, 2011, 12:43
скорее всего тут лучше использовать onCurrentIndexChanged:

Код:
    PathView {
        id: view

        model: Model1 { id: myModel }
        ...
        onCurrentIndexChanged: {
            var name =  myModel.get(currentIndex).name;
            ...
        }