Я не могу нарисовать QVideoWidget с QPainter
Я пытаюсь рисовать строки, пока у меня есть видео, как субтитры... У меня есть Phonon::QVideoWidget, в его конструкторе я делаю:
painter = new QPainter(this);
и я переписал событие рисования к этому, только для теста:
void MyVideoWidget::paintEvent(QPaintEvent* event)
{
painter->drawLine(0, 0, 1, 1);
//painter-> anything shows
}
Поэтому, когда я запускаю свой плеер, я ничего не вижу, что делал QPainter, только обычное видео, воспроизводящее какие-либо идеи?
1 ответ
Чаще всего делать QPainter
местный экземпляр в paintEvent()
функция.
QPainter painter(this);
Это приводит к begin()
а также end()
методы вызываются автоматически. Это необходимо для QPainter
работать правильно. Вы можете попробовать вызвать их вручную в paintEvent()
чтобы увидеть, если это имеет значение.
Еще одна вещь, которую вы можете попробовать наложить текст на видео, это создать QLabel
в коде и сделать ваше видео виджет своим родителем. Это не требует подклассификации виджета видео или переопределения события рисования.