PySide6.QtStateMachine.QState

class QState

QState 类为 QStateMachine 提供了一个通用的状态。更多

PySide6.QtStateMachine.QState 的继承图

继承者: QStateMachine

概要

属性

方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QState 对象可以有子状态,并且可以转换到其他状态。QStateQt 状态机框架 的一部分。

addTransition() 函数用于添加一个过渡。removeTransition() 函数用于移除一个过渡。transitions() 函数返回状态的出站过渡。

assignProperty() 函数用于定义在进入状态时应执行的属性分配。

顶级状态必须传递一个QStateMachine对象作为它们的父状态,或者使用addState()添加到状态机中。

具有子状态的州

childMode 属性决定了子状态的处理方式。对于非并行状态组,必须调用 setInitialState() 函数来设置初始状态。子状态是互斥状态,状态机需要知道在父状态成为转换目标时进入哪个子状态。

当进入最终子状态(QFinalState)时,状态会发出finished()信号。

setErrorState() 设置状态机的错误状态。错误状态是当尝试进入该状态时检测到错误(例如,因为没有设置初始状态)时,状态机将转换到的状态。

class ChildMode

此枚举指定如何处理状态的子状态。

常量

描述

QState.ExclusiveStates

子状态是互斥的,必须通过调用 setInitialState() 来设置初始状态。

QState.ParallelStates

子状态是并行的。当父状态进入时,所有子状态都会并行进入。

class RestorePolicy

此枚举指定了恢复策略类型。当机器进入设置一个或多个属性的状态时,恢复策略生效。如果恢复策略设置为RestoreProperties,状态机将在设置新值之前保存属性的原始值。

之后,当机器进入一个不为给定属性设置值的状态时,该属性将自动恢复到其初始值。

对于任何给定的属性,只会保存一个初始值。如果状态机已经保存了某个属性的值,那么在成功恢复该属性之前,该值不会被覆盖。

常量

描述

QState.DontRestoreProperties

状态机不应保存属性的初始值并在以后恢复它们。

QState.RestoreProperties

状态机应保存属性的初始值并在稍后恢复它们。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property childModeᅟ: QState.ChildMode

此属性保存此状态的子模式。

此属性的默认值为 ExclusiveStates

Access functions:
property errorStateᅟ: QAbstractState

此属性保存此状态的错误状态。

Access functions:
property initialStateᅟ: QAbstractState

此属性保存此状态(其子状态之一)的初始状态。

Access functions:
__init__([parent=None])
Parameters:

父级QState

使用给定的parent状态构造一个新的状态。

__init__(childMode[, parent=None])
Parameters:

使用给定的childMode和给定的parent状态构造一个新的状态。

addTransition(target)
Parameters:

目标QAbstractState

Return type:

QAbstractTransition

添加从此状态到给定target状态的无条件转换,并返回新的转换对象。

addTransition(transition)
Parameters:

transitionQAbstractTransition

添加给定的transition。该过渡以此状态为源。此状态拥有该过渡的所有权。

addTransition(signal, arg__2)
Parameters:
Return type:

QSignalTransition

addTransition(sender, signal, target)
Parameters:
Return type:

QSignalTransition

添加与给定signal相关联的过渡,该信号来自给定的sender对象,并返回新的QSignalTransition对象。该过渡以此状态为源状态,并以给定的target为目标状态。

assignProperty(object, name, value)
Parameters:
  • objectQObject

  • name – str

  • value – 对象

指示此状态在进入时,将给定object的给定name属性设置为给定value

另请参阅

propertiesAssigned()

childMode()
Return type:

ChildMode

返回此状态的子模式。

另请参阅

setChildMode()

属性 childModeᅟ 的获取器。

childModeChanged()

childMode属性更改时,会发出此信号。

另请参阅

childMode

属性 childModeᅟ 的通知信号。

errorState()
Return type:

QAbstractState

返回此状态的错误状态。

另请参阅

setErrorState() error()

属性 errorStateᅟ 的获取器。

errorStateChanged()

errorState属性发生变化时,会发出此信号。

另请参阅

errorState

属性 errorStateᅟ 的通知信号。

finished()

当进入此状态的最终子状态时,会发出此信号。

另请参阅

QFinalState

initialState()
Return type:

QAbstractState

返回此状态的初始状态,如果状态没有初始状态,则返回None

另请参阅

setInitialState()

属性 initialStateᅟ 的获取器。

initialStateChanged()

initialState属性发生变化时,会发出此信号。

另请参阅

initialState

属性 initialStateᅟ 的通知信号。

propertiesAssigned()

当所有属性都被赋予最终值时,会发出此信号。如果状态为一个或多个属性分配了值,并且这些属性存在动画(无论是在过渡中设置的还是在状态机上作为默认动画),则信号将在所有这些动画播放完毕后才会发出。

如果没有相关的动画,或者没有为该状态定义的属性分配,那么信号将在进入状态之前立即发出。

另请参阅 assignProperty()addAnimation()

removeTransition(transition)
Parameters:

transitionQAbstractTransition

从该状态中移除给定的transition。该状态释放对过渡的所有权。

另请参阅

addTransition()

setChildMode(mode)
Parameters:

模式ChildMode

设置此状态的子mode

另请参阅

childMode()

属性 childModeᅟ 的设置器。

setErrorState(state)
Parameters:

状态QAbstractState

将此状态的错误状态设置为给定的state。如果未设置错误状态,或者将其设置为None,则该状态将递归继承其父级的错误状态。如果未为该状态本身或其任何祖先设置错误状态,则错误将导致机器停止执行,并将错误打印到控制台。

另请参阅

errorState()

属性 errorStateᅟ 的设置器。

setInitialState(state)
Parameters:

状态QAbstractState

将此状态的初始状态设置为给定的statestate必须是此状态的子状态。

另请参阅

initialState()

属性 initialStateᅟ 的设置器。

transitions()
Return type:

QAbstractTransition的列表

返回此状态的传出转换(即此状态为source state的转换),如果此状态没有传出转换,则返回空列表。

另请参阅

addTransition()