PySide6.QtStateMachine.QHistoryState

class QHistoryState

QHistoryState 类提供了一种返回到先前活动子状态的方法。更多

PySide6.QtStateMachine.QHistoryState 的继承图

概要

属性

方法

信号

注意

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

详细描述

历史状态是一种伪状态,表示父状态上次退出时所在的子状态。以历史状态为目标的转换实际上是对父状态的一个或多个其他子状态的转换。QHistoryStateQt状态机框架的一部分。

使用 setDefaultState() 函数来设置如果父状态从未进入时应进入的状态。示例:

machine = QStateMachine()

s1 = QState()
s11 = QState(s1)
s12 = QState(s1)

s1h = QHistoryState(s1)
s1h.setDefaultState(s11)

machine.addState(s1)

s2 = QState()
machine.addState(s2)

button = QPushButton()
# Clicking the button will cause the state machine to enter the child state
# that s1 was in the last time s1 was exited, or the history state's default
# state if s1 has never been entered.
s1.addTransition(button.clicked, s1h)

如果需要输入多个默认状态,或者需要对默认状态的转换进行操作,则应设置defaultTransition。请注意,该转换的eventTest()方法将永远不会被调用:在进入历史状态时,转换的选择和执行是自动完成的。

默认情况下,历史状态是浅层的,这意味着它不会记住嵌套状态。这可以通过historyType属性进行配置。

class HistoryType

此枚举指定了QHistoryState记录的历史类型。

常量

描述

QHistoryState.ShallowHistory

仅记录父状态的直接子状态。在这种情况下,以历史状态为目标的转换将结束于父状态上次退出时所处的直接子状态。这是默认设置。

QHistoryState.DeepHistory

嵌套状态被记录。在这种情况下,以历史状态为目标的转换将结束于父状态上次退出时所在的最近嵌套的后代状态。

注意

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

property defaultStateᅟ: QAbstractState

此属性保存此历史状态的默认状态。

Access functions:
property defaultTransitionᅟ: QAbstractTransition

此属性保存此历史状态的默认过渡。

Access functions:
property historyTypeᅟ: QHistoryState.HistoryType

此属性保存此历史状态记录的历史类型。

此属性的默认值为 ShallowHistory

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

父级QState

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

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

构造给定type的新历史状态,并带有给定的parent状态。

defaultState()
Return type:

QAbstractState

返回此历史状态的默认状态。默认状态表示如果父状态之前从未进入过,则要转换到的状态。

另请参阅

setDefaultState()

属性 defaultStateᅟ 的获取器。

defaultStateChanged()

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

另请参阅

defaultState

属性 defaultStateᅟ 的通知信号。

defaultTransition()
Return type:

QAbstractTransition

返回此历史状态的默认转换。当历史状态之前从未进入过时,将采用默认转换。因此,默认转换的目标状态构成了默认状态。

另请参阅

setDefaultTransition()

属性 defaultTransitionᅟ 的获取器。

defaultTransitionChanged()

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

另请参阅

defaultTransition

属性 defaultTransitionᅟ 的通知信号。

historyType()
Return type:

HistoryType

返回此历史状态记录的历史类型。

另请参阅

setHistoryType()

属性 historyTypeᅟ 的获取器。

historyTypeChanged()

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

另请参阅

historyType

属性 historyTypeᅟ 的通知信号。

setDefaultState(state)
Parameters:

状态QAbstractState

将此历史状态的默认状态设置为给定的statestate必须是此历史状态的兄弟节点。

请注意,此函数不会将state设置为其父级的初始状态。

另请参阅

defaultState()

属性 defaultStateᅟ 的设置器。

setDefaultTransition(transition)
Parameters:

transitionQAbstractTransition

将此历史状态的默认过渡设置为给定的transition。这将把transition的源状态设置为历史状态。

请注意,transition 的 eventTest 方法将永远不会被调用。

另请参阅

defaultTransition()

属性 defaultTransitionᅟ 的设置器。

setHistoryType(type)
Parameters:

类型HistoryType

设置此历史状态记录的历史type

另请参阅

historyType()

属性 historyTypeᅟ 的设置器。