Quantcast
Channel: Qt DevNet forums: Qt Quick 1283365070**
Viewing all articles
Browse latest Browse all 4972

How to modify Gradient in a state's PropertyChange?

$
0
0
I have a Rectangle with the following gradient:     gradient: Gradient     {         GradientStop { position: 0; color: "#424242" }         GradientStop { position: 1; color: "#313131" }     } I want to make a smooth transition of the gradient to another gradient when the rectangle is pressed. The following doesn’t work:     states: State     {         name: "down"; when: (mouseArea.pressed === true);         PropertyChanges { target: frame; gradient[0].color: "#929292"; }         PropertyChanges { target: frame; gradient[1].color: "#818181"; }     } The frame target is my Rectangle. Accessing the gradient property like this doesn’t seem to be allowed. Realizing that http://qt-project.org/doc/qt-5/qml-qtquick-gradient.html documents the members of Gradient being members of a property list called stops, I changed the lines containing PropertyChanges to:         PropertyChanges { target: frame; gradient.stops[0].color: "#929292"; }         PropertyChanges { target: frame; gradient.stops[1].color: "#818181"; } However, this still doesn’t work. I found http://qt-project.org/doc/qt-4.8/qml-list.html and learned that property lists may only be assigned to new lists, but members may not be modified. So, I tried creating a new gradient instead:     PropertyChanges     {         target: frame;         gradient: Gradient         {             GradientStop { position: 0; color: "#929292" }             GradientStop { position: 1; color: "#818181" }         }     } This isn’t allowed either, because PropertyChanges may only modify existing properties, but they are not allowed to create new objects. How do I achieve my goal?

Viewing all articles
Browse latest Browse all 4972

Trending Articles