2017-12-19 32 views
0

QGraphicsViewでrtspを使ってビデオ(640 * 360)を再生しようとしています。しかし、問題はビュー内に完全には適合しておらず、スクロールバーが現れていないということです。さらに、Linux環境でも同じコードの平和感を得ることができますが、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

シーン矩形がシーンの範囲を定義し、ビューの場合には、これはあなたがスクロールを使用してナビゲートすることができ、シーンの面積を意味しますバー。

これは、ビューの可視領域のサイズは変更されませんが、シーンのどの領域のみがビューに表示されるかを意味します。だから私はあなたのビューのサイズを変更する必要があると思います。

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

(何らかの理由でファクタ1.97を使用してビューを拡大縮小するため、幅と高さが1.97になります)。