2

我正在尝试在播放视频时绘制字符串,例如字幕...我有一个 Phonon::QVideoWidget,在它的构造函数中我这样做:

painter = new QPainter(this);

我已经覆盖了绘画事件,仅用于测试:

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

所以当我启动我的播放器时,我看不到 QPainter 所做的任何事情,只有普通视频播放任何想法?

4

1 回答 1

0

在函数QPainter中创建本地实例更为常见。paintEvent()

QPainter painter(this);

这导致begin()end()方法被自动调用。这些是QPainter正常工作所必需的。您可以尝试在 中手动调用它们paintEvent(),看看是否有区别。

您可能会尝试在视频上覆盖文本的另一件事是创建一个QLabelin 代码并将您的视频小部件设为其父级。这不需要子类化视频小部件或覆盖绘制事件。

于 2012-06-05T04:32:12.087 回答