Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在运行时将QState.assignProperty与动态值一起使用_Python_Qt_Properties_Pyqt_Qstatemachine - Fatal编程技术网

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")