Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > 1dd17e0d683ef79b4bb6872bbf359d7f > files > 5917

qt4-doc-4.8.7-26.2.mga7.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qdeclarativepropertychanges.cpp -->
  <title>Qt 4.8: QML PropertyChanges Element</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
<li><a href="qdeclarativeelements.html">QML Elements</a></li>
<li>QML PropertyChanges Element</li>
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#properties">Properties</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
<li class="level2"><a href="#resetting-property-values">Resetting property values</a></li>
<li class="level2"><a href="#immediate-property-changes-in-transitions">Immediate property changes in transitions</a></li>
</ul>
</div>
<h1 class="title">QML PropertyChanges Element</h1>
<span class="subtitle"></span>
<!-- $$$PropertyChanges-brief -->
<p>The PropertyChanges element describes new property bindings or values for a state. <a href="#details">More...</a></p>
<!-- @@@PropertyChanges -->
<p>This element was introduced in Qt 4.7.</p>
<ul>
<li><a href="qml-propertychanges-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="properties"></a>
<h2>Properties</h2>
<ul>
<li class="fn"><b><b><a href="qml-propertychanges.html#explicit-prop">explicit</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-propertychanges.html#restoreEntryValues-prop">restoreEntryValues</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-propertychanges.html#target-prop">target</a></b></b> : Object</li>
</ul>
<!-- $$$PropertyChanges-description -->
<a name="details"></a>
<h2>Detailed Description</h2>
<p>PropertyChanges is used to define the property values or bindings in a <a href="qml-state.html">State</a>. This enables an item's property values to be changed when it <a href="qdeclarativestates.html">changes between states</a>.</p>
<p>To create a PropertyChanges object, specify the <a href="qml-propertychanges.html#target-prop">target</a> item whose properties are to be modified, and define the new property values or bindings. For example:</p>
<pre class="qml"> import QtQuick 1.0

 <span class="type"><a href="qml-item.html">Item</a></span> {
     <span class="name">id</span>: <span class="name">container</span>
     <span class="name">width</span>: <span class="number">300</span>; <span class="name">height</span>: <span class="number">300</span>

     <span class="type"><a href="qml-rectangle.html">Rectangle</a></span> {
         <span class="name">id</span>: <span class="name">rect</span>
         <span class="name">width</span>: <span class="number">100</span>; <span class="name">height</span>: <span class="number">100</span>
         <span class="name">color</span>: <span class="string">&quot;red&quot;</span>

         <span class="type"><a href="qml-mousearea.html">MouseArea</a></span> {
            <span class="name">id</span>: <span class="name">mouseArea</span>
            <span class="name">anchors</span>.fill: <span class="name">parent</span>
         }

         <span class="name">states</span>: <span class="name">State</span> {
            <span class="name">name</span>: <span class="string">&quot;resized&quot;</span>; <span class="name">when</span>: <span class="name">mouseArea</span>.<span class="name">pressed</span>
            <span class="type">PropertyChanges</span> { <span class="name">target</span>: <span class="name">rect</span>; <span class="name">color</span>: <span class="string">&quot;blue&quot;</span>; <span class="name">height</span>: <span class="name">container</span>.<span class="name">height</span> }
         }
     }
 }</pre>
<p>When the mouse is pressed, the <a href="qml-rectangle.html">Rectangle</a> changes to the <i>resized</i> state. In this state, the PropertyChanges object sets the rectangle's color to blue and the <tt>height</tt> value to that of <tt>container.height</tt>.</p>
<p>Note this automatically binds <tt>rect.height</tt> to <tt>container.height</tt> in the <i>resized</i> state. If a property binding should not be established, and the height should just be set to the value of <tt>container.height</tt> at the time of the state change, set the <a href="qml-propertychanges.html#explicit-prop">explicit</a> property to <tt>true</tt>.</p>
<p>A PropertyChanges object can also override the default signal handler for an object to implement a signal handler specific to the new state:</p>
<pre class="qml"> <span class="type">PropertyChanges</span> {
     <span class="name">target</span>: <span class="name">myMouseArea</span>
     <span class="name">onClicked</span>: <span class="name">doSomethingDifferent</span>()
 }</pre>
<p><b>Note:</b> PropertyChanges can be used to change anchor margins, but not other anchor values; use <a href="qml-anchorchanges.html">AnchorChanges</a> for this instead. Similarly, to change an <a href="qml-item.html">Item</a>'s <a href="qml-item.html#parent-prop">parent</a> value, use ParentChanges instead.</p>
<a name="resetting-property-values"></a>
<h3>Resetting property values</h3>
<p>The <tt>undefined</tt> value can be used to reset the property value for a state. In the following example, when <tt>theText</tt> changes to the <i>widerText</i> state, its <tt>width</tt> property is reset, giving the text its natural width and displaying the whole string on a single line.</p>
<pre class="qml"> <span class="type"><a href="qml-rectangle.html">Rectangle</a></span> {
     <span class="name">width</span>: <span class="number">300</span>; <span class="name">height</span>: <span class="number">200</span>

     <span class="type"><a href="qml-text.html">Text</a></span> {
         <span class="name">id</span>: <span class="name">myText</span>
         <span class="name">width</span>: <span class="number">50</span>
         <span class="name">wrapMode</span>: <span class="name">Text</span>.<span class="name">WordWrap</span>
         <span class="name">text</span>: <span class="string">&quot;a text string that is longer than 50 pixels&quot;</span>

         <span class="name">states</span>: <span class="name">State</span> {
             <span class="name">name</span>: <span class="string">&quot;widerText&quot;</span>
             <span class="type">PropertyChanges</span> { <span class="name">target</span>: <span class="name">myText</span>; <span class="name">width</span>: <span class="name">undefined</span> }
         }
     }

     <span class="type"><a href="qml-mousearea.html">MouseArea</a></span> {
         <span class="name">anchors</span>.fill: <span class="name">parent</span>
         <span class="name">onClicked</span>: <span class="name">myText</span>.<span class="name">state</span> <span class="operator">=</span> <span class="string">&quot;widerText&quot;</span>
     }
 }</pre>
<a name="immediate-property-changes-in-transitions"></a>
<h3>Immediate property changes in transitions</h3>
<p>When <a href="qdeclarativeanimation.html">Transitions</a> are used to animate state changes, they animate properties from their values in the current state to those defined in the new state (as defined by PropertyChanges objects). However, it is sometimes desirable to set a property value <i>immediately</i> during a <a href="qml-transition.html">Transition</a>, without animation; in these cases, the <a href="qml-propertyaction.html">PropertyAction</a> element can be used to force an immediate property change.</p>
<p>See the <a href="qml-propertyaction.html">PropertyAction</a> documentation for more details.</p>
<p><b>See also </b><a href="declarative-animation-states.html">states example</a>, <a href="qdeclarativestates.html#qmlstates">States</a>, and <a href="qtdeclarative.html">QtDeclarative</a>.</p>
<!-- @@@PropertyChanges -->
<h2>Property Documentation</h2>
<!-- $$$explicit -->
<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr valign="top" class="odd"><td class="tblQmlPropNode"><p><a name="explicit-prop"></a><span class="qmlreadonly">read-only</span><span class="name">explicit</span> : <span class="type"><a href="qml-bool.html">bool</a></span></p></td></tr></table></div><div class="qmldoc"><p>If explicit is set to true, any potential bindings will be interpreted as once-off assignments that occur when the state is entered.</p>
<p>In the following example, the addition of explicit prevents <tt>myItem.width</tt> from being bound to <tt>parent.width</tt>. Instead, it is assigned the value of <tt>parent.width</tt> at the time of the state change.</p>
<pre class="qml"> <span class="type"><a href="qml-propertychanges.html">PropertyChanges</a></span> {
     <span class="name">target</span>: <span class="name">myItem</span>
     <span class="name">explicit</span>: <span class="number">true</span>
     <span class="name">width</span>: <span class="name">parent</span>.<span class="name">width</span>
 }</pre>
<p>By default, explicit is false.</p>
</div></div><!-- @@@explicit -->
<br/>
<!-- $$$restoreEntryValues -->
<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr valign="top" class="odd"><td class="tblQmlPropNode"><p><a name="restoreEntryValues-prop"></a><span class="name">restoreEntryValues</span> : <span class="type"><a href="qml-bool.html">bool</a></span></p></td></tr></table></div><div class="qmldoc"><p>This property holds whether the previous values should be restored when leaving the state.</p>
<p>The default value is <tt>true</tt>. Setting this value to <tt>false</tt> creates a temporary state that has permanent effects on property values.</p>
</div></div><!-- @@@restoreEntryValues -->
<br/>
<!-- $$$target -->
<div class="qmlitem"><div class="qmlproto"><table class="qmlname"><tr valign="top" class="odd"><td class="tblQmlPropNode"><p><a name="target-prop"></a><span class="name">target</span> : <span class="type">Object</span></p></td></tr></table></div><div class="qmldoc"><p>This property holds the object which contains the properties to be changed.</p>
</div></div><!-- @@@target -->
<br/>
      </div>
    </div>
    </div> 
    <div class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2015 The Qt Company Ltd.
      Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Qt and respective logos are trademarks of The Qt Company Ltd 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>