2009-07-09 55 views
3

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

回答

1

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

有幾種方法可以從這裏進入,對於Xorg的某些版本/配置可能不起作用的更好用的方法是讓第二個窗口與第一個窗口的尺寸相同,並將其直接放置在另一個窗口的頂部(有一種機制可以在移動其他窗口時移動其他窗口),並使窗口透明(除了控件之外)(透明度是某些版本的X的問題,請查看labs.trolltech.com以獲取這些示例)。

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

+0

非常感謝您的回覆。我還沒有時間嘗試它,我會發布我的進展和解決方案。 – 2009-08-07 08:51:24

0

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

+0

我已經試過了,但在其所有的都不盡如人意。我想知道VLC如何在全屏模式下顯示進度條? – 2009-07-09 17:13:51

0

封裝在一個小窗口視頻,散發出的QImage到它轉換成你重寫的paintEvent期間,在小部件漆的QPixmap()插槽。

我不知道你有什麼樣的互動與不是「消息」等影片提供,但如果你想要的東西花哨,的QGraphicsView可以提供大量的這些影響你。

希望這會有所幫助。