【发布时间】:2013-10-15 09:39:06
【问题描述】:
当在QStateMachine 中输入一个 QState 时,一些 Widget 对象属性会使用 assignProperty() 设置,并且 enter() 信号用于运行一个 Slot 方法,该方法 exec() 是一个 QDialog。
这主要是可行的,但对话框是在分配属性之前创建的,这是不希望的,因为属性只是在对话框关闭后才最终分配。
如果对话框不会阻塞(它究竟“阻塞”了什么?),那么确切的顺序并不重要。人类感知的外观应该是“同时的”。
解决方案可以使对话框不阻塞或确保在对话框执行之前设置属性。
我现在将尝试使用单次 QTimer 来延迟运行 QDialog 的 exec() 的插槽,但我当然仍在寻找合适的解决方案,即使这应该可行。
【问题讨论】:
-
QDialog可以设置为非模态
-
对话框必须是模态的(我使用单次计时器的解决方法目前有效)。
标签: c++ qt qstatemachine