【发布时间】:2017-01-09 19:43:07
【问题描述】:
我对正确使用PyQt5 的QStateMachine-System 有疑问。
使用
State.assignProperty(aLineEdit, "plainText", "Some text")
只要aState 处于活动状态,就可以将"Some text" 设置为plainText 属性。
问题:如果"Some text" 在执行前不是常量或已知的怎么办?我的意图是传递一个函数(与将 partial 或 lambda 表达式连接到事件不同)而不是在进入状态时会产生适当值的值。
我模拟这种行为的唯一想法是连接一个将属性设置为aState.entered 的函数。但是我对该解决方案不满意,因为它混淆了设置属性的位置,使用 QStateMachine 的一个原因是避免自己手动设置状态。
【问题讨论】:
-
动态属性不会破坏状态机的逻辑吗?如果一个属性可以是
A或B,那么这似乎意味着两种不同的状态。 -
@ekhumoro 可以说我现在如何定义属性的状态(例如通过方法表示),当相应的机器状态处于活动状态时。无论如何,我只是希望(d)有一种方法可以更灵活地使用状态机。
-
灵活性由
enter和exit信号提供。
标签: python qt properties pyqt qstatemachine