本页内容

创建基础状态

为了保持代码整洁,请创建一个基状态,其中包含应用程序中所需的所有组件。随后,您可以创建其他状态,在这些状态中隐藏或显示一组组件,并修改其属性。这样可以:

  • 使不同视图中的组件保持对齐。
  • 避免过多的属性更改。如果某个组件在基状态中不可见,则必须将对其子组件的所有更改都定义为属性更改,这会导致代码复杂。
  • 最大限度地减少基础状态与其他状态之间的差异,以保持代码简洁易读,并提升性能。
  • 避免在切换状态时使用过渡和动画所引发的问题。

使用状态创建应用程序视图

要使用状态为应用程序创建视图:

  1. 转至View >Views >States
  2. 在基状态中,添加应用程序中所需的所有组件 (1)。在处理某个视图时,您可以在“Navigator ”中选择““眼睛”按钮 ”,以隐藏画布上不属于该视图的组件。
  3. 在“States ”中,选择“+ ”图标以创建新状态并为其命名。例如:Normal
  4. Properties (2)中,对于该视图中不需要的每个组件,清除Visibility 或将Opacity 设置为0。如果为父组件指定该设置,所有子组件都会继承该设置并被隐藏。
  5. 为每个视图创建额外的状态,并设置视图中组件的可见性或不透明度。
  6. 要确定应用程序启动时应用哪个状态,请选择“Default ”。

使用状态来显示和隐藏组件。

状态分组

借助状态组,您可以独立于同一视图中的其他组件及其状态来更改某些组件的状态。

每个状态组都有其自身的属性变化和过渡效果。

默认情况下,有一个默认状态组。

扩展状态

当一个状态继承自另一个状态时,它将继承该状态的所有变化。对于继承状态所指定的变化而言,被继承的状态将被视为基状态。

使用扩展状态可以使用户界面和您的 QML 代码更加简洁。

在下面的示例中,State1State2 之间的唯一区别在于directionalLight 的亮度。

此处未使用扩展状态:

美国有三个州,这些州没有扩展状态。

在此示例中,State2 是从State1 继承而来的:

“美国”中的三个州视图,其中State2是从State1延伸而来的。

另请参阅 《操作指南:状态操作》、《Qt Quick 界面设计》以及Qt Quick 界面设计》。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. 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.