【问题标题】:Use QState.assignProperty with dynamic values at runtime在运行时将 QState.assignProperty 与动态值一起使用
【发布时间】:2017-01-09 19:43:07
【问题描述】:

我对正确使用PyQt5QStateMachine-System 有疑问。

使用

State.assignProperty(aLineEdit, "plainText", "Some text")

只要aState 处于活动状态,就可以将"Some text" 设置为plainText 属性。

问题:如果"Some text" 在执行前不是常量或已知的怎么办?我的意图是传递一个函数(与将 partiallambda 表达式连接到事件不同)而不是在进入状态时会产生适当值的值。

我模拟这种行为的唯一想法是连接一个将属性设置为aState.entered 的函数。但是我对该解决方案不满意,因为它混淆了设置属性的位置,使用 QStateMachine 的一个原因是避免自己手动设置状态。

【问题讨论】:

  • 动态属性不会破坏状态机的逻辑吗?如果一个属性可以是AB,那么这似乎意味着两种不同的状态。
  • @ekhumoro 可以说我现在如何定义属性的状态(例如通过方法表示),当相应的机器状态处于活动状态时。无论如何,我只是希望(d)有一种方法可以更灵活地使用状态机。
  • 灵活性由enterexit 信号提供。

标签: python qt properties pyqt qstatemachine


【解决方案1】:

您唯一的想法是正确的,但您应该将其分解为辅助方法,以便在进入状态时调用该函数。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多