//选择视频 void Widget::on_choose_btn_clicked() { //获取视频的完整路径 // QString str="D:\Qt\Qt5.12.12\QT\QT_project\output.avi"; //QString path = "D:\Qt\Qt5.12.12\QT\QT_project\output.avi"; QString path = QFileDialog::getOpenFileName(nullptr, "Open Image", QDir::homePath(), "Images (*.avi *.mp4 *.wmv)"); //加载资源文件 this->player->setMedia(QMediaContent(QUrl(path))); //设置画面的输出 this->player->setVideoOutput(video_widget); // 将视频画面输出到pictrue_lab } //开始播放 void Widget::on_start_play_btn_clicked() { //播放视频 this->player->play(); //播放滑块的初始值 this->ui->slider->setValue(0); //启动定时器 this->timer->start(1000); }将画面显示在label标签中
时间: 2023-06-25 10:05:56 浏览: 89
css.rar_btn_search_box.gif_css search box
要将视频画面显示在label标签中,可以使用QLabel类中的setPixmap()方法来设置标签的显示内容。具体实现可以参考下面的代码:
//选择视频
void Widget::on_choose_btn_clicked() {
QString path = QFileDialog::getOpenFileName(nullptr, "Open Video", QDir::homePath(), "Videos (*.avi *.mp4 *.wmv)");
this->player->setMedia(QMediaContent(QUrl(path)));
this->player->setVideoOutput(video_widget);
}
//开始播放
void Widget::on_start_play_btn_clicked() {
this->player->play();
this->ui->slider->setValue(0);
this->timer->start(1000);
}
//更新标签显示内容
void Widget::updateLabel() {
//获取当前帧的图像
QImage frame = video_widget->grab().toImage();
//将图像缩放到标签的大小
QPixmap pixmap = QPixmap::fromImage(frame).scaled(ui->label->size(), Qt::KeepAspectRatio);
//设置标签的显示内容
ui->label->setPixmap(pixmap);
}
//定时器事件
void Widget::timerEvent(QTimerEvent *event) {
//更新标签显示内容
updateLabel();
}
其中,updateLabel()方法用来更新标签的显示内容,它首先调用video_widget->grab().toImage()方法获取当前帧的图像,然后将图像缩放到标签的大小,并使用setPixmap()方法设置标签的显示内容。定时器事件中,每隔一定时间调用updateLabel()方法更新标签的显示内容。
阅读全文