2017-12-19 4 views
0

QGraphicsView에서 rtsp를 통해 비디오 (640 * 360)를 재생하려고합니다. 그러나 문제는 뷰 내에 완전히 들어 맞지 않으며 스크롤바가 나타나기 때문에 발생하지 않아야한다는 것입니다. 그리고 리눅스 환경에서 제대로 작동하는 코드와 동일한 평화를 얻을 수 있지만 Windows에서 문제가 발생합니다.QGraphicsView에서 비디오가 제대로 끼워지지 않음

코드 스 니펫을 아래에서 찾으십시오. 누군가가 오류를 지적하면 도움이 될 것입니다.

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(); 

답변

2

QGraphicsView에 대한 문서에 대한 setSceneRect

장면 사각형 장면의 범위를 정의 SAIS하고 뷰의 경우, 이것은 당신이 스크롤을 사용하여 탐색 할 수 있습니다 장면의 영역을 의미한다 바.

즉, setSceneRect는 뷰의 표시 영역의 크기를 조정하지 않지만 뷰의 어떤 영역 만 볼 수 있는지를 나타냅니다. 그래서 당신은 단지보기의 크기를 바꾸어야한다고 생각합니다.

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

(당신이 어떤 이유로 계수 1.97를 사용하여보기를 확장 때문에 나는 1.97와 너비/높이를 조정).

관련 문제