PySide6.QtStateMachine.QState¶
- class QState¶
QState
类为QStateMachine
提供了一个通用的状态。更多…继承者:
QStateMachine
概要¶
属性¶
childModeᅟ
- 此状态的子模式errorStateᅟ
- 此状态的错误状态initialStateᅟ
- 此状态的初始状态(其子状态之一)
方法¶
def
__init__()
def
addTransition()
def
assignProperty()
def
childMode()
def
errorState()
def
initialState()
def
setChildMode()
def
setErrorState()
def
transitions()
信号¶
def
finished()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QState
对象可以有子状态,并且可以转换到其他状态。QState
是 Qt 状态机框架 的一部分。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:
使用给定的
parent
状态构造一个新的状态。使用给定的
childMode
和给定的parent
状态构造一个新的状态。- addTransition(target)¶
- Parameters:
目标 –
QAbstractState
- Return type:
添加从此状态到给定
target
状态的无条件转换,并返回新的转换对象。- addTransition(transition)
- Parameters:
transition –
QAbstractTransition
添加给定的
transition
。该过渡以此状态为源。此状态拥有该过渡的所有权。- addTransition(signal, arg__2)
- Parameters:
signal – 对象
arg__2 –
QAbstractState
- Return type:
- addTransition(sender, signal, target)
- Parameters:
sender –
QObject
signal – str
target –
QAbstractState
- Return type:
添加与给定
signal
相关联的过渡,该信号来自给定的sender
对象,并返回新的QSignalTransition对象。该过渡以此状态为源状态,并以给定的target
为目标状态。指示此状态在进入时,将给定
object
的给定name
属性设置为给定value
。另请参阅
返回此状态的子模式。
另请参阅
属性
childModeᅟ
的获取器。- childModeChanged()¶
当
childMode
属性更改时,会发出此信号。另请参阅
属性
childModeᅟ
的通知信号。- errorState()¶
- Return type:
返回此状态的错误状态。
另请参阅
属性
errorStateᅟ
的获取器。- errorStateChanged()¶
当
errorState
属性发生变化时,会发出此信号。另请参阅
属性
errorStateᅟ
的通知信号。- finished()¶
当进入此状态的最终子状态时,会发出此信号。
另请参阅
- initialState()¶
- Return type:
返回此状态的初始状态,如果状态没有初始状态,则返回
None
。另请参阅
属性
initialStateᅟ
的获取器。- initialStateChanged()¶
当
initialState
属性发生变化时,会发出此信号。另请参阅
属性
initialStateᅟ
的通知信号。- propertiesAssigned()¶
当所有属性都被赋予最终值时,会发出此信号。如果状态为一个或多个属性分配了值,并且这些属性存在动画(无论是在过渡中设置的还是在状态机上作为默认动画),则信号将在所有这些动画播放完毕后才会发出。
如果没有相关的动画,或者没有为该状态定义的属性分配,那么信号将在进入状态之前立即发出。
另请参阅
assignProperty()
和addAnimation()
- removeTransition(transition)¶
- Parameters:
transition –
QAbstractTransition
从该状态中移除给定的
transition
。该状态释放对过渡的所有权。另请参阅
设置此状态的子
mode
。另请参阅
属性
childModeᅟ
的设置器。- setErrorState(state)¶
- Parameters:
状态 –
QAbstractState
将此状态的错误状态设置为给定的
state
。如果未设置错误状态,或者将其设置为None
,则该状态将递归继承其父级的错误状态。如果未为该状态本身或其任何祖先设置错误状态,则错误将导致机器停止执行,并将错误打印到控制台。另请参阅
属性
errorStateᅟ
的设置器。- setInitialState(state)¶
- Parameters:
状态 –
QAbstractState
将此状态的初始状态设置为给定的
state
。state
必须是此状态的子状态。另请参阅
属性
initialStateᅟ
的设置器。- transitions()¶
- Return type:
返回此状态的传出转换(即此状态为
source state
的转换),如果此状态没有传出转换,则返回空列表。另请参阅