1
我有一個問題,正確使用QStateMachine
- 系統PyQt5
。在運行時使用帶有動態值的QState.assignProperty
使用
State.assignProperty(aLineEdit, "plainText", "Some text")
允許設置"Some text"
到plainText
-property每當aState
是活動的。
問題:如果"Some text"
在執行前不是恆定的或已知的,該怎麼辦?我的意圖是傳遞一個函數(與將partial
或lambda
表達式連接到事件不同),而不是在輸入狀態時產生適當值的值。
我唯一的想法是模擬這種行爲是連接一個函數,該屬性設置爲aState.entered
。但是我對這個解決方案並不滿意,因爲它混合了設置屬性的地方,並且使用QStateMachine
的理由是爲了避免自己手動設置狀態。
不會動態屬性破壞狀態機的邏輯嗎?如果一個屬性可以是'A'或'B',那麼這似乎意味着兩種不同的狀態。 – ekhumoro
@ekhumoro人們可以說我現在是如何定義屬性的狀態(例如通過方法表示),當相應的機器狀態處於活動狀態時。無論如何,我只希望(d)有一種更靈活的方式來使用狀態機。 – aisen
靈活性由'enter'和'exit'信號提供。 – ekhumoro