Sebastian Negraszus
Sebastian Negraszus

Reputation: 12215

Play a video with custom overlay graphics

I want to play a video (with sound) in a simple GUI with "play" and "stop" buttons etc. There are classes and widgets in Qt's Phonon module for doing that, and several examples. OK, so that seems to be simple.

But now I need to draw some custom graphics (that depend on the current time in the video) on top of the streamed video image. I have not found anything about this in the Qt documentation. What's the canonical way of doing this? Do I just create a custom VideoWidget widget and override its paintEvent? In another question here, some guy seemed to have trouble with this.

Any pointers would be appreciated.

Upvotes: 1

Views: 5265

Answers (2)

user1773762
user1773762

Reputation: 11

Your solution cannot work because you cannot add a QGLWidget to QGraphicsProxyWidget. Please look at http://doc.qt.digia.com/qt/qgraphicsproxywidget.html

Note that widgets with the Qt::WA_PaintOnScreen widget attribute set and widgets that wrap an external application or controller cannot be embedded. Examples are QGLWidget and QAxWidget.

Please correct me if I'm wrong.

Upvotes: 1

Vicken Simonian
Vicken Simonian

Reputation: 411

Use QGraphicsView and QGraphicsWidgets. You can put your Phonon::VideoWidget inside a QGraphicsProxyWidget and it becomes usable as a QGraphicsWidget.

For custom overlays, inherit QGraphicsWidget and override the paint function to draw your custom widgets. You can add them to your scene and they will appear on top of your video widget.

Upvotes: 2

Related Questions