2013-03-22 15 views
0

我將一個視頻播放器從PyTk移植到wxWidgets。wxWidgets相當於PyTk的update_idletasks?

我有一個單獨的工作線程,通過wx.PostEvent每30ms將事件推送到主應用程序(根據這些指令:http://wiki.wxpython.org/Non-Blocking%20Gui)。主應用程序應該從視頻文件中讀取一個新幀並將其顯示出來。事件被正確接收和處理(通過調試語句確認),但屏幕上的實際圖像不會更新。 GUI只會在工作線程終止後纔會更新 - 所以我只能看到最後一幀。

我的框架閱讀和顯示代碼工作正常 - 我已經使用滑塊測試了它。我無法弄清楚GUI不更新的原因。

在PyTk中,有一個名爲update_idletasks的方法強制重繪窗口小部件。我有一種感覺,我需要在wxWidgets中做類似的事情 - 情況如何?如果是,那麼什麼是wxWidgets替代update_idletasks?

回答

1

我的猜測:這是比wxWidgets更多的Windows事物。我想你可能需要告訴窗口管理器,包含視頻幀的窗口需要重新繪製。在該窗口上調用Refresh()或Invalidate()可能值得嘗試。

+0

你是對的。在事件處理代碼中,我必須調用self.Refresh(),然後再調用self.Update()才能工作。謝謝。 – misha 2013-03-22 13:49:43