wxpython:在事件发生时从while循环中断

时间:2014-03-18 14:05:13

标签: wxpython

我想创建一个wxpython应用程序,它在无限循环内缓冲音频输入,直到点击chekbox。我尝试了以下代码,但它没有响应任何事件,只是在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

1 个答案:

答案 0 :(得分:0)

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

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

我还有一篇关于这个主题的旧文章: