[英]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.