我正在尝试通过QGraphicsView中的rtsp播放视频(640 * 360)。但问题是它不完全适合视图并且滚动条出现,这不应该发生。此外,我能够在Linux环境中获得相同的代码安静,但我在Windows中遇到了问题。
请查看下面的代码段,如果有人能指出我所犯的错误会有所帮助。
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();
答案 0 :(得分:2)
QGraphicsView关于setSceneRect
场景矩形定义场景的范围,在视图中,这意味着您可以使用滚动条导航的场景区域。
这意味着,setSceneRect不会调整视图的可见区域,但只会在视图中显示场景的哪个区域。所以我想你只需要调整你的观点,例如。
view->resize(scene->width()*1.97, scene->height()*1.97)
(我用1.97缩放了宽度/高度,因为你出于某种原因使用因子1.97缩放你的视图。)