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.
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:
Constructeur de la classe Video
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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())); }
Partager