首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QVideoWidget不能很好地调整大小

QVideoWidget不能很好地调整大小
EN

Stack Overflow用户
提问于 2018-03-21 15:36:31
回答 1查看 1.4K关注 0票数 0

我有一个Qt应用程序,它只是从默认的摄像头捕捉并显示在QVideoWidget上。在ui中,我有一个简单的MainWindow,在VerticalLayout中有一个QGraphicsView:

ui设计

我的mainwindow.cpp=============================================

代码语言:javascript
复制
#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:视频被切断了,但它没有提供任何对我有用的解决方案。当使用链时,我什么也看不见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-21 16:38:34

使用下列指令时:

代码语言:javascript
复制
m_viewfinder = new QVideoWidget(ui->captureView);

您正在将m_viewfinder的父级设置为captureView,因此m_viewfinder的位置将相对于captureView,但这并不表示它将与父级大小相同。

最简单的方法之一是使用布局。此外,没有必要创建QGraphicsWidgetQVBoxLayout,因此我建议您删除它并获得默认设置的设计:

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

代码语言:javascript
复制
...
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();
}
...

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49410557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档