Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 当存在QWebEngineView时,QGraphicsView无法渲染视频_Qt - Fatal编程技术网

Qt 当存在QWebEngineView时,QGraphicsView无法渲染视频

Qt 当存在QWebEngineView时,QGraphicsView无法渲染视频,qt,Qt,我正在制作一个非常简单的应用程序,它使用QMediaPlayer/QGraphicsVideoItem/qgraphicscene/QGraphicsView播放视频,同时使用QWebEngineView显示网页 但是,当QWebEngineView显示时,仅播放视频的声音。小部件仅显示白色。未调用QWebEngineView的->show()时,视频将正常播放 我试过QVideoWidget。它没有这样的问题 我认为QGraphicsView的呈现可能与QWebEngine的冲突 代码如下:

我正在制作一个非常简单的应用程序,它使用QMediaPlayer/QGraphicsVideoItem/qgraphicscene/QGraphicsView播放视频,同时使用QWebEngineView显示网页

但是,当QWebEngineView显示时,仅播放视频的声音。小部件仅显示白色。未调用QWebEngineView的->show()时,视频将正常播放

我试过QVideoWidget。它没有这样的问题

我认为QGraphicsView的呈现可能与QWebEngine的冲突

代码如下:

#include "mainwindow.h"
#include <QApplication>

#include <QWebEngineView>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QMediaPlayer>
#include <QVideoWidget>
#include <QGraphicsVideoItem>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebEngineView *webview = new QWebEngineView();
    QMediaPlayer *player = new QMediaPlayer();
    QGraphicsVideoItem *item = new QGraphicsVideoItem;
    QVideoWidget *vwid = new QVideoWidget();
    QGraphicsView *gview = new QGraphicsView();

    player->setMedia(QUrl::fromLocalFile("/home/user/Videos/IMG_6201.MOV"));
    //player->setVideoOutput(vwid);
    player->setVideoOutput(item);
    QGraphicsScene *gscene = new QGraphicsScene();
    gview->setScene(gscene);
    webview.setUrl(QUrl("https://www.google.com"));
    gview->scene()->addItem(item);

    //vwid->show();
    player->play();
    webview->show();
    gview->show();

    return a.exec();
}
#包括“mainwindow.h”
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
QWebEngineView*webview=新的QWebEngineView();
QMediaPlayer*播放器=新的QMediaPlayer();
QGraphicsVideoItem*item=新的QGraphicsVideoItem;
QVideoWidget*vwid=新的QVideoWidget();
QGraphicsView*gview=新的QGraphicsView();
player->setMedia(QUrl::fromLocalFile(“/home/user/Videos/IMG_6201.MOV”);
//播放器->设置视频输出(vwid);
播放器->设置视频输出(项目);
qgraphicscene*gscene=新的qgraphicscene();
gview->setScene(gscene);
webview.setUrl(QUrl(“https://www.google.com"));
gview->scene()->addItem(项目);
//vwid->show();
player->play();
webview->show();
gview->show();
返回a.exec();
}

QGraphicsView能够对任何事物进行仿射变换(例如旋转和缩放)。您不应该期望视频被变换(因为您的硬件或大多数硬件功能不够强大),QGraphicsView能够对任何事物进行仿射变换(例如旋转和缩放)。您不应该期望视频被转换(因为您或大多数硬件的功能不够强大)