Russian Qt Forum

Qt => Qt Quick => Тема начата: DiamondRain от Декабрь 21, 2010, 18:18



Название: QML. Вывод в Behavior'e анимированных примитивов.
Отправлено: DiamondRain от Декабрь 21, 2010, 18:18
Нужно в Behavior'е выводить прямоугольники примерно так:

Код:
Behavior on myProperty {
    Repeater {
        model: 5
        Rectangle {
            id: rect
            width: 33
            height: 60
            x: 100
            y: 200
            color: "black"
            smooth: true
            NumberAnimation on x {
                to: 500
                duration: 300
            }

            NumberAnimation on y {
                to: 100 * index
                duration: 300
            }

            transform: Rotation {
                origin.x: rect.width / 2
                origin.y: rect.height / 2
                axis { x: 0; y: 0; z: 1 }
                NumberAnimation on angle {
                    from: 1
                    to: 360
                    duration: 300
                    loops: 1
                }
            }
        }
    }
}

Я полагаю, нужно использовать NumberAnimation, ParallelAnimation...

Еще я подумал, может применить Connection {} ?


Название: Re: QML. Вывод в Behavior'e анимированных примитивов.
Отправлено: twp от Декабрь 21, 2010, 18:48
Нужно в Behavior'е выводить прямоугольники примерно так:

Код:
Behavior on myProperty {
    Repeater {
        model: 5
        Rectangle {
            id: rect
            width: 33
            height: 60
            x: 100
            y: 200
            color: "black"
            smooth: true
            NumberAnimation on x {
                to: 500
                duration: 300
            }

            NumberAnimation on y {
                to: 100 * index
                duration: 300
            }

            transform: Rotation {
                origin.x: rect.width / 2
                origin.y: rect.height / 2
                axis { x: 0; y: 0; z: 1 }
                NumberAnimation on angle {
                    from: 1
                    to: 360
                    duration: 300
                    loops: 1
                }
            }
        }
    }
}

Я полагаю, нужно использовать NumberAnimation, ParallelAnimation...

Еще я подумал, может применить Connection {} ?
вообще-то Behavior предназначен для указания анимации по умолчанию для какого-либо свойства, но никак не для вывода в нем графики. Вот например отрывок из асистента:
Код:
 Rectangle {
     id: rect
     width: 100; height: 100
     color: "red"

     Behavior on width {
         NumberAnimation { duration: 1000 }
     }

     MouseArea {
         anchors.fill: parent
         onClicked: rect.width = 50
     }
 }


Название: Re: QML. Вывод в Behavior'e анимированных примитивов.
Отправлено: DiamondRain от Декабрь 21, 2010, 18:52
да, это я видел. тогда что мне может помочь?


Название: Re: QML. Вывод в Behavior'e анимированных примитивов.
Отправлено: twp от Декабрь 21, 2010, 19:12
прямоугольники можно выводить на каком либо графическом объекте, хотя бы на том же прямоугольнике. Вообще есть примеры в Qt\demos\declarative\ и Qt\examples\declarative\ которые желательно посмотреть