Python 在运行时将QState.assignProperty与动态值一起使用
我对正确使用Python 在运行时将QState.assignProperty与动态值一起使用,python,qt,properties,pyqt,qstatemachine,Python,Qt,Properties,Pyqt,Qstatemachine,我对正确使用PyQt5的QStateMachine-系统有一个问题 使用 当aState处于活动状态时,允许将“某些文本”设置为纯文本-属性 问题:如果执行前“某些文本”不是常量或已知,该怎么办?我的意图是传递一个函数(与将部分或lambda表达式连接到事件不同),而不是在输入状态时生成适当值的值 模拟此行为的唯一方法是连接一个函数,该函数将属性设置为aState.entered。但是,我对这种解决方案不满意,因为它混淆了属性设置的位置,使用QStateMachine的一个原因是为了避免自己手动
PyQt5
的QStateMachine
-系统有一个问题
使用
当aState
处于活动状态时,允许将“某些文本”
设置为纯文本
-属性
问题:如果执行前“某些文本”
不是常量或已知,该怎么办?我的意图是传递一个函数(与将部分
或lambda
表达式连接到事件不同),而不是在输入状态时生成适当值的值
模拟此行为的唯一方法是连接一个函数,该函数将属性设置为
aState.entered
。但是,我对这种解决方案不满意,因为它混淆了属性设置的位置,使用QStateMachine
的一个原因是为了避免自己手动设置状态。您唯一的想法是正确的,但是你应该把它分解成一个helper方法,以便在进入状态时调用函数。你唯一的想法是正确的,但是你应该把它分解成一个helper方法,以便在进入状态时调用函数。动态属性不会破坏状态机的逻辑吗?如果一个属性可以是a
或B
,那么这似乎意味着两种不同的状态。@ekhumoro可以说,我现在知道了当相应的机器状态处于活动状态时,如何定义属性的状态(例如用方法表示)。无论如何,我只是希望(d)有一种更灵活地使用状态机的方法。这种灵活性是由enter
和exit
信号提供的。动态属性不会破坏状态机的逻辑吗?如果一个属性可以是a
或B
,那么这似乎意味着两种不同的状态。@ekhumoro可以说,我现在知道了当相应的机器状态处于活动状态时,如何定义属性的状态(例如用方法表示)。无论如何,我只是希望(d)有一种更灵活地使用状态机的方法。这种灵活性是由enter
和exit
信号提供的。
State.assignProperty(aLineEdit, "plainText", "Some text")