IVideoWindow更新问题

时间:2010-10-01 12:06:51

标签: c++ qt directshow

我想将视频从我的网络摄像头渲染到QWidget中。我已将QWidget设置为IVideoWindow的父级。这是代码:

m_iVideoWindow->put_Owner((OAHWND)widget_->winId());
m_iVideoWindow->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN);
m_iVideoWindow->put_Left(0);
m_iVideoWindow->put_Top(0);
widget_->setChild(m_iVideoWindow);

此外,我重新实现了QWidget的resize事件,所以当它调整大小时,它也会调整IVideoWindow的大小。当窗口小部件未设置为QLayout时,一切正常。什么时候 - 它变成空白。这就是问题所在。

1 个答案:

答案 0 :(得分:0)

我认为当Qt绘制其小部件时,它不会重绘它们,除非它知道它们需要更新。我也不确定它是否会将窗口所需的任何重绘内容传递给您指定为窗口小部件子窗口的窗口。

当我在Qt小部件中嵌入我自己的窗口时,我使用http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Windows/qtwinmigrate/,但这可能无法解决您的问题,因为我仍然需要使用QTimer来强制更新我的窗口。