簡體   English   中英

在Qt Widget中的視頻上繪畫

[英]Painting on top of video in a Qt Widget

我正在開發一個可以播放視頻的Qt應用程序,並在此過程中顯示一些滾動條。 窗口尺寸不得超過720px的高度和1280的寬度。 我使用MPlayer作為從屬進程並將其傳遞給QWidget的winId()並將視頻呈現在其中。 現在我希望在此視頻窗口小部件之上的另一個窗口小部件始終顯示一些結果,但是在包含視頻的窗口小部件頂部放置標簽窗口小部件不能達到目的,因為它會被視頻反復繪制。 任何解決方法? 關於它的建議?

當以這種方式使用MPlayer時,我相信您最好的選擇是創建第二個窗口

有幾種方法你可以從這里開始,在一些版本/配置的Xorg上可能不起作用的更好的方法是讓第二個窗口與第一個窗口的大小相同,並將它直接放在另一個窗口的上面(帶有一個機制)移動另一個窗口時,移動其他窗口,並使窗口透明,除了你的控件(透明度是某些版本的X的問題,檢查labs.trolltech.com的一些例子)。

另一種方法,我相信VLC在全屏模式下使用的方法是讓第二個窗口只是控件的一個小東西,並將它放在第一個窗口的頂部,帶有偏移,沒有邊框......當第一個窗口移動時,第二個窗口的位置會更新。

我建議你看一下播放視頻的Phonon框架。 它應該處理播放而不調用單獨的可執行文件,這可能會解決繪畫問題。

將視頻封裝在窗口小部件中,將QImage發送到插槽中,將其轉換為QPixmap,在覆蓋的paintEvent()期間在窗口小部件上繪制。

我不知道你的視頻除了“消息”之外還要提供什么樣的互動,但如果你想要一些奇特的東西,QGraphicsView可以為你提供很多這些效果。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM