我有一个 Qt 应用程序,它只是从默认网络摄像头捕获并将其显示在 QVideoWidget 上。在 ui 中,我有一个简单的 MainWindow,在 VerticalLayout 内有一个 QGraphicsView:
用户界面设计
我的mainwindow.cpp===============================================
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_viewfinder = new QVideoWidget(ui->captureView);
m_camera = new QCamera(QCameraInfo::defaultCamera());
m_camera->setViewfinder(m_viewfinder);
m_camera->start();
}
MainWindow::~MainWindow()
{
m_camera->stop();
delete m_viewfinder;
delete m_camera;
delete ui;
}
当我执行此操作时,我让应用程序运行,但视频内容不会根据主窗口大小进行缩放。例子:
当我启动应用程序时
向下调整主窗口大小
向上调整主窗口大小
有什么方法可以使视频内容很好地调整大小并适合可用区域?我已经看到了这个答案:QVideoWidget: Video is cut off,但它没有提供任何适合我的解决方案。当使用 QGraphicsView-QGraphicsScene-QGraphicsVideoItem 链时,我什么也看不到。