[英]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_viewfinder
到captureView
,这样的位置m_viewfinder
会相对captureView
,但这并不表明,这将是大小父一样。
最简单的方法之一就是使用布局。 另外,也不必创建QGraphicsWidget
或QVBoxLayout
,因此建议您删除它并获取默认情况下建立的设计:
然后我们建立一个放置在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.