繁体   English   中英

QVideoWidget的尺寸调整不佳

[英]QVideoWidget doesn't resize well

我有一个Qt应用程序,它可以简单地从默认摄像头捕获并显示在QVideoWidget上。 在用户界面中,我有一个简单的MainWindow,在VerticalLayout中带有QGraphicsView:

ui设计

我的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:视频已被切断 ,但是它没有提供任何适合我的解决方案。 当使用QGraphicsView-QGraphicsScene-QGraphicsVideoItem链时,我什么也看不到。

当您使用以下说明时:

m_viewfinder = new QVideoWidget(ui->captureView);

要设置为父m_viewfindercaptureView ,这样的位置m_viewfinder会相对captureView ,但这并不表明,这将是大小父一样。

最简单的方法之一就是使用布局。 另外,也不必创建QGraphicsWidgetQVBoxLayout ,因此建议您删除它并获取默认情况下建立的设计:

在此处输入图片说明

然后我们建立一个放置在centralWidget中的布局,并在该布局中添加QVideoWidget

...
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_viewfinder = new QVideoWidget;
    QVBoxLayout *lay = new QVBoxLayout(ui->centralWidget);
    lay->addWidget(m_viewfinder);
    m_camera = new QCamera(QCameraInfo::defaultCamera());
    m_camera->setViewfinder(m_viewfinder);

    m_camera->start();
}
...

在下面的链接中,您可以找到完整的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM