【问题标题】:Video not fitting in properly in QGraphicsView视频在 QGraphicsView 中不正确
【发布时间】:2023-03-27 22:08:02
【问题描述】:

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

【问题讨论】:

    标签: c++ qt qgraphicsview


    【解决方案1】:

    QGraphicsView 的文档是关于 setSceneRect

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

    这意味着,setSceneRect 不会调整视图的可见区域的大小,而只会调整场景的哪个区域在视图中可见。所以我猜你只需要调整你的视图,例如

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      相关资源
      最近更新 更多