2012-06-05 28 views
2

我想畫的字符串,而我有一個視頻palying,像字幕...... 我有一個聲子:: QVideoWidget,在其構造我做的:我不能畫QVideoWidget與QPainter的

painter = new QPainter(this); 

我已經overrided油漆事件到此,僅供試:

void MyVideoWidget::paintEvent(QPaintEvent* event) 
{ 
    painter->drawLine(0, 0, 1, 1); 
    //painter-> anything shows 
} 

所以,當我開始我的球員,我看不到一絲的QPainter確實,只有正常的視頻播放 什麼想法?

+0

設置一個可見的筆顏色和背景的畫家和嘗試... – ScarCode

回答

0

QPainter作爲paintEvent()函數中的本地實例更爲常見。

QPainter painter(this); 

這將導致begin()end()方法被自動調用。這些對於QPainter正常工作是必需的。您可以嘗試在paintEvent()中手動調用它們以查看是否有所作爲。

您可能會嘗試在視頻上疊加文字的另一件事是在代碼中創建一個QLabel,並將您的視頻窗口小部件作爲其父項。這不需要對視頻小部件進行子分類或覆蓋繪畫事件。

+0

...和你的QLabel建議讓我們重寫它的paintEvent,所以你可以使你自己的繪圖,獨立於視頻部件。 –

+0

我嘗試使用QPainter本地實例,但沒有工作。我開始認爲VideoWidget不使用PaintEvent來渲染視頻...我會嘗試使用QLabel,如果它工作並將標記爲答覆,請在此處再次發帖,謝謝 – fredcrs

+0

它的工作原理,但與tranparent背景'當VideoWidget改變幀本身時,s的QLabel沒有重畫,Im很確定VideoWidget沒有使用paintEvent來渲染視頻...任何關於如何在視頻播放時使字幕標籤重繪的想法?使用計時器不是一個好主意,是嗎?謝謝 – fredcrs