error: no matching function for call to 'QMediaPlayer::setVideoOutput(QLabel*&)' this->player->setVideoOutput(this->ui->pictrue_lab);
时间: 2024-05-15 09:13:23 浏览: 193
这个错误是因为 `QMediaPlayer` 的 `setVideoOutput` 函数需要一个 `QVideoWidget` 或者 `QGraphicsVideoItem` 类型的参数,但你传递的是一个 `QLabel` 类型的参数。你可以使用 `QVideoWidget` 类型的控件作为视频输出或者使用 `QGraphicsVideoItem` 类型的图形项。如果你想使用 `QLabel` 作为视频输出,你可以将视频帧作为 `QImage` 对象绘制在 `QLabel` 上。
以下是使用 `QVideoWidget` 的示例代码:
```cpp
QVideoWidget *videoWidget = new QVideoWidget;
this->player->setVideoOutput(videoWidget);
ui->verticalLayout->addWidget(videoWidget);
```
以下是使用 `QLabel` 的示例代码:
```cpp
QImage image = frame.image(); // 获取视频帧
QPixmap pixmap = QPixmap::fromImage(image);
this->ui->picture_lab->setPixmap(pixmap);
```
阅读全文