我創建應用程序從一個設備分析數據,並在屏幕上顯示它處理裝置顯示的QWidget。通過設置窗口處理程序(HWND),處理此設備的SDK具有在特定窗口中顯示當前數據幀的功能。如何將數據流從上述通過外部庫
在我的Qt GUI應用程序我試圖顯示自己在視頻流部件,這在我的QGLWidget來繪圖顯示一個DLL(它是由winId功能和HWND設置)。 MainWidget是顯示數據流的QGLWidget的父級,QWidget(或某些圖形標記,例如Circle)應顯示在來自QGLWidget的數據流上方。
一切工作幾乎完美,但我得到眨眼效果(閃爍效果?) - 我的圈子小部件是隱藏和顯示人眼可以得到的頻率,我儘量避免它。,以排除唯一的選擇是創建這個圈子小窗口,併爲它的Qt ::彈出標誌設置,通過它有很大的缺點 - 我沒有訪問接口的其餘部分(我知道,這是彈出標誌故障)。我已經試過其他選項,如:
- 集合Q :: WindowStaysOnTopHint和其他幾個旗,
- 創建佈局對象,父母是QGLWidget來繪圖,在那裏我從顯示設備的數據,並且低於設定圈widget作爲但是這裏的黑色背景是陰影顯示的數據(我甚至關閉了背景,但我意識到Qt無法知道我的小部件下面是什麼,因爲它是由外部庫處理的)。
在文件我發現我可以創建自己的DirectShow + COM對象的信息(或接口,對嗎?),以處理視頻流,但我真的不知道這個技術,我想避免此選項,許多!
[編輯]我發現我可以把數據作爲IPictureDisp接口的當前幀,但正如我前面說的我真的不知道COM技術。我試圖找到一些關於如何與IPictureDisp一起工作,但我沒有關於COM技術的基本知識。有人有任何好的教程嗎?
什麼是不工作?我無法弄清楚問題所在。您是否試圖在**外部進程**上顯示Qt小部件?或者是在你的進程**中顯示一個HWND **的DLL?你的問題現在有點混亂,你可以編輯它並刪除不相關的信息,如果它是COM/DirectShow,它有什麼關係?此外,請將您的問題分段。 – sashoalm
感謝您的建議。我糾正了我的帖子。現在,我希望它有我想要的信息。 –
我仍然不明白問題是什麼。你想達到什麼目的,它是如何失敗的?你不知道如何讓孩子QWidget或什麼?並且不要添加關於您的項目的所有不相關的信息,或者爲什麼您需要它。只是說「我想讓一個QWidget成爲另一個的孩子」 – sashoalm