视频在QGraphicsView中无法正常使用

时间:2017-12-19 09:21:40

标签: c++ qt qgraphicsview

我正在尝试通过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();

1 个答案:

答案 0 :(得分:2)

QGraphicsView关于setSceneRect

的文档
  

场景矩形定义场景的范围,在视图中,这意味着您可以使用滚动条导航的场景区域。

这意味着,setSceneRect不会调整视图的可见区域,但只会在视图中显示场景的哪个区域。所以我想你只需要调整你的观点,例如。

view->resize(scene->width()*1.97, scene->height()*1.97)

(我用1.97缩放了宽度/高度,因为你出于某种原因使用因子1.97缩放你的视图。)