视频在 QGraphicsView 中不正确
Posted
技术标签:
【中文标题】视频在 QGraphicsView 中不正确【英文标题】:Video not fitting in properly in QGraphicsView 【发布时间】:2017-12-19 09:21:39 【问题描述】:我正在尝试在 QGraphicsView 中通过 rtsp 播放视频(640 * 360)。但问题是它不完全适合视图并且出现滚动条,这不应该发生。而且,我能够在 Linux 环境中获得同样的代码正常工作,但我在 Windows 中遇到了问题。
请在下面找到代码sn-p,如果有人能指出我所犯的错误会有所帮助。
scene = new QGraphicsScene(this);
view= new graphicsView();
view->setScene(scene);
videoItem = new QGraphicsVideoItem;
player= new QMediaPlayer;
player->setVideoOutput(videoItem);
view->scene()->addItem(videoItem);
controlLayout = new QHBoxLayout;
controlLayout->setMargin(0);
controlLayout->addWidget(view);
view->setSceneRect(scene->sceneRect());
view->scale(1.97,1.97);
ui.m_pframePlay->setLayout(controlLayout);
ui.m_pframePlay->show();
player->setMedia(QUrl("rtsp:..."));
player->play();
【问题讨论】:
【参考方案1】:QGraphicsView 的文档是关于 setSceneRect
场景矩形定义场景的范围,在视图的情况下,这意味着您可以使用滚动条导航的场景区域。
这意味着,setSceneRect 不会调整视图的可见区域的大小,而只会调整场景的哪个区域在视图中可见。所以我猜你只需要调整你的视图,例如
view->resize(scene->width()*1.97, scene->height()*1.97)
(我使用 1.97 缩放宽度/高度,因为您出于某种原因使用因子 1.97 缩放视图)。
【讨论】:
以上是关于视频在 QGraphicsView 中不正确的主要内容,如果未能解决你的问题,请参考以下文章
如何在不缩放场景的情况下与 QGraphicsView 左侧的矩形对齐?
尝试在 QGraphicsScene 和 QGraphicsView 中显示 opencv 视频,但没有显示