【问题标题】:wxpython: breaking from a while loop when an event occurswxpython:发生事件时从while循环中中断
【发布时间】:2014-03-18 14:05:12
【问题描述】:

我想创建一个 wxpython 应用程序,它在无限循环中缓冲音频输入,直到单击复选框。我尝试了以下代码,但它没有响应任何事件,只是在 while 循环中迭代。请帮助我继续我的项目工作。提前致谢

    while 1:
      #buffering of audio data
      if self.checkbox_1.GetValue(): #checking for an external event but this external event  is not working and i cant even check the check box
        break

【问题讨论】:

    标签: wxpython


    【解决方案1】:

    答案是线程。通过创建无限循环,您将阻止 UI 的事件循环。所以在一个单独的线程中做缓冲片。在线程中,您需要分块进行缓冲(例如一次一千字节)。在每个块之后,使用 wxPython 的线程安全方法之一询问 wxPython 是否选中了复选框。线程安全的方法是 wx.CallAfter、wx.CallLater 和 wx.PostEvent。我会推荐第一个或最后一个。

    wxPython wiki 解释了如何添加线程:

    我也有一篇关于这个话题的旧文章:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2017-11-14
      • 2019-05-05
      相关资源
      最近更新 更多