0

我正在将视频播放器从 PyTk 移植到 wxWidgets。

我有一个单独的工作线程,每 30 毫秒将事件推送到主应用程序wx.PostEvent(基于这些说明:http ://wiki.wxpython.org/Non-Blocking%20Gui )。主应用程序应该从视频文件中读取一个新帧并显示它。事件被正确接收和处理(通过调试语句确认),但屏幕上的实际图像不会更新。GUI 仅在工作线程终止后更新——所以我只能看到最后一帧。

我的帧读取和显示代码工作正常——我已经使用滑块对其进行了测试。我无法弄清楚 GUI 不更新的原因。

在 PyTk 中,有一个名为 update_idletasks 的方法可以强制重新绘制小部件。我有一种感觉,我需要在 wxWidgets 中做类似的事情——是这样吗?如果是,那么 wxWidgets 替代 update_idletasks 是什么?

4

1 回答 1

1

我的猜测:这比 wxWidgets 更像是一个 windows 的东西。我想您可能需要告诉窗口管理器包含视频帧的窗口需要重新绘制。在该窗口上调用 Refresh() 或 Invalidate() 可能值得一试。

于 2013-03-22T13:45:19.203 回答