QVideoWidget fait disparaître l'image lors de la pause
Bonjour,
J'ai un soucis avec QVideoWidget.
Lorsque je mets en pause une vidéo, l'image disparaît lorsque je clique dessus, ou, si après avoir cliqué dessus au cours du visionnage, je clique sur un autre widget. C'est franchement pénible et je ne vois pas d'où ça peut venir. Or, pour le petit projet de programme que j'ai, il est indispensable que l'image en pause reste affichée.
Sauriez-vous d'où pourrait venir le problème ? Merci. :P
Je suis sous Linux Mint. Je ne sais pas si le problème survient également sous Windows ou Mac.
Voici un code minimal reproduisant le problème :
Constructeur de MainWindow:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QWidget * container = new QWidget;
QVBoxLayout * vl = new QVBoxLayout;
container->setLayout(vl);
m_video = new Video;
vl->addWidget(m_video);
QTableWidget * table = new QTableWidget(10,2);
table->setFocusPolicy(Qt::ClickFocus);
table->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
vl->addWidget(table);
setCentralWidget(container);
showMaximized();
} |
Constructeur de la classe Video
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Video::Video(QWidget *parent) : QWidget(parent)
{
setFocusPolicy(Qt::ClickFocus);
mediaPlayer = new QMediaPlayer(this);
audioOutput = new QAudioOutput(this);
mediaPlayer->setAudioOutput(audioOutput);
videoWidget = new QVideoWidget(this);
mediaPlayer->setVideoOutput(videoWidget);
videoWidget->show();
videoWidget->setFocusPolicy(Qt::NoFocus);
videoWidget->resize(720,400);
mediaPlayer->setSource(QUrl::fromLocalFile("/home/jerome/video.avi"));
mediaPlayer->play();
m_timer.start(2000); // Pour forcer la mise en pause de la vidéo
connect(&m_timer, SIGNAL(timeout()), mediaPlayer, SLOT(pause()));
} |