wxpython无限刷新面板导致程序崩溃

时间:2012-03-30 16:18:34

标签: python multithreading wxpython refresh panel

当我尝试使用Wxpython + OpenCV来实现面部检测时,我遇到了一个问题。

基本上,我的想法是设计一个包含检测到的帧和两个按钮的GUI。一个是开始,另一个是停止。我使用面板作为容器来显示每个框架,并在很短的时间间隔内无限刷新面板。

但是当我运行程序时,如果我单击开始按钮,程序将在2秒后崩溃。即使在程序崩溃之前,停止按钮似乎也没用。

我认为这是线程问题。由于整个UI是一个很大的循环,并且如果我需要刷新其中一个组件,比如面板,我总是需要使用与主线程不同的线程。

是吗?如果是,我该怎么办?如果没有,请给我一些额外的提示。

谢谢百万〜! ;)

1 个答案:

答案 0 :(得分:1)

除非必须,否则不应刷新。不必要地刷新不是要走的路。只有在发生变化时才刷新。如果您正在使用线程来更新wxPython GUI组件,那么您需要确保使用wx.PallAfter,wx.CallLater或wx.PostEvent等wxPython线程安全方法。有关线程和wxPython的更多信息,请参阅以下任何内容: