簡體   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