tags:

views:

496

answers:

3

I am developing a Qt application that can play the videos and shows some scrolling bar along the way. The window size MUST Not exceed the limit of 720px in height and 1280 in width. I use MPlayer as a slave process and pass it the winId() of the QWidget and it renders the video in it. Now I want another widget on top of this video widget to show some results all the time but placing a label widget on top of the widget that contains video does not serve the purpose as it gets painted over and over by the video. Any workaround? Suggestions about it?

A: 

I suggest you look into the Phonon framework for playing the video. It should handle the playing without calling a separate executable, which would likely solve the painting problem.

Caleb Huitt - cjhuitt
I have tried that but its not working well at all. I wonder how VLC shows progress bar in the fullscreen mode?
Mohsin Hijazee
+1  A: 

When using MPlayer in this manner, I believe your best option would be to create a second window.

There's a couple ways you could go from here, the fancier way which might not work on some versions/configurations of Xorg is to have the second window the same size as the first, and place it directly on top of the other (with a mechanism to move the other window when either is moved), and make the window transparent except for your controls (transparency being the problem with some versions of X, check labs.trolltech.com for some examples of this).

The alternative method, which I believe is what VLC uses when in fullscreen mode, is to have the second window just be a small little thing with the controls, and position it on top of the first window with an offset and no border... making it so when the first window is moved, the second window's position is updated.

Kitsune
Thank you very much for your response. I'm not getting time to try it out as yet, I'd post my progress and the solution.
Mohsin Hijazee
A: 

Encapsulate your video in a widget, emitting a QImage into a slot that converts it into a QPixmap which you paint on the widget during overridden paintEvent().

I don't know what kind of interaction you have to provide with your videos other than "a message" but if you want something fancy, QGraphicsView can provide a lot of these effects for you.

Hope this helps.

Karol Wilk