【问题标题】:How to hold for loop iterations?如何保持for循环迭代?
【发布时间】:2013-12-27 19:25:08
【问题描述】:

我希望“A 类”保持而不是完成对所有计数的循环,并等待“B 类”完成使用来自“A 类”的结果集。 “Class B”是一个 wxPython 对话框,它使用在“Class A”中计算的变量并进行一些计算。但是“A 类”完成了 for 循环并打开了等于 for 循环总数的对话框数。

class A(object):
      count = 3
      for i in range(count):
          """do something"""
          dlg = B()

class B(object):
      """do something"""

如何在for循环的每次迭代中保持它与wxPython对话框一一配合?

【问题讨论】:

  • 使用信号量,这将锁定 A 直到 B 提出它。 docs.python.org/2.3/lib/semaphore-examples.html
  • 既然他在谈论 GUI,那么在这里使用信号量或其他锁定可能不是一个好主意。他需要使用一些东西将控制权返回给 GUI 的主循环。我从未使用过 wxPython,但我使用过的 GUI 框架都有一个像 .run() 这样的阻塞对话框调用,可以为您执行此操作。

标签: python python-2.7 wxpython


【解决方案1】:

当您打开对话框时,您需要以模态方式显示它。这将导致执行“暂停”。所以做这样的事情:

dlg.ShowModal()

这应该适用于您的用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2019-06-01
    • 2012-06-27
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多