[Qt-qml] 答复: How to change initial state of Loader's sourceComponent?

kuifei.yu at nokia.com kuifei.yu at nokia.com
Fri Jan 28 04:16:38 CET 2011


Disable the behavior. Ugly resources[0], but it works:)

Br.,
Yu Kuifei

//import QtQuick 1.0
import Qt 4.7
 Item {
      width: 640
      height: 480

      Loader {
          anchors.centerIn: parent
          sourceComponent: blueRect
          onLoaded: {item.resources[0].enabled = false; item.color = "red";}   // How make rect start out red without fade from blue?
      }

      MouseArea {
          anchors.fill: parent
          onClicked: loader.item.color = "green"
      }

      Component {
          id: blueRect
          Rectangle {
              color: "blue"
              Behavior on color { ColorAnimation { duration: 1000 } }
              width: 100
              height: 100
          }
      }
 }

________________________________________
发件人: qt-qml-bounces+kuifei.yu=nokia.com at qt.nokia.com [qt-qml-bounces+kuifei.yu=nokia.com at qt.nokia.com] 代表 ext Christoper Ham [christopher.ham at nokia.com]
发送时间: 2011年1月28日 6:57
收件人: qt-qml at qt.nokia.com
主题: Re: [Qt-qml] How to change initial state of Loader's        sourceComponent?

On 01/28/2011 04:27 AM, ext mathias.malmqvist at nokia.com wrote:
> Hi,
>
> Here's a little challenge for you all:
> If we assume changing the definition of the "blueRect" Component below is not allowed,
> is there any way to change the rest of the code such that the rectangle start out red instead
> of blue without the ColorAnimation being triggered?
>
> import QtQuick 1.0
> Item {
>      width: 640
>      height: 480
>
>      Loader {
>          anchors.centerIn: parent
>          sourceComponent: blueRect
>          onLoaded: item.color = "red"   // How make rect start out red without fade from blue?
>      }
>
>      MouseArea {
>          anchors.fill: parent
>          onClicked: loader.item.color = "green"
>      }
>
>      Component {
>          id: blueRect
>          Rectangle {
>              color: "blue"
>              Behavior on color { ColorAnimation { duration: 1000 } }
>              width: 100
>              height: 100
>          }
>      }
> }
>
>
> Cheers
> Mathias
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
It might be a bit on the messy side, but you could bind to the 'enable'
property of the Behavior. Before you set the color, disable the
behavior, then enable it again after.

Br,
Christopher
_______________________________________________
Qt-qml mailing list
Qt-qml at qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-qml


More information about the Qt-qml mailing list