2012-04-16 4 views
4

세로 스크롤 막대 정책이 "ScrollBarAlwaysOff"인 QGraphicsView가 있습니다. 문제는 (QSplitter를 통해 또는 창 크기를 조정하여)보기의 크기를 조정할 때 빈 공간이 종종보기의 오른쪽에 나타납니다. 여기에 예를 들어 빨간색 배경과 검은 QGraphicsRectItem와의 : QGraphicsView 스크롤 막대 정책이 예상대로 작동하지 않습니다.

image of the problem

가 어떻게이 문제를 해결할 수 있습니다

다음
#include <QtGui> 

class MainWindow : public QMainWindow 
{ 
public: 
    MainWindow() 
    { 
     QGraphicsScene *scene = new QGraphicsScene(this); 
     QRectF rect(-100, -100, 200, 200); 
     QGraphicsRectItem *rectItem = new QGraphicsRectItem(rect); 
     rectItem->setBrush(QBrush(Qt::black)); 
     scene->addItem(rectItem); 
     scene->setSceneRect(rect); //commenting this out doesn't make a difference 

     QGraphicsView *view = new QGraphicsView(this); 
     view->setBackgroundBrush(QBrush(Qt::red)); 
     view->setTransformationAnchor(QGraphicsView::AnchorViewCenter); 
     view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
     view->setScene(scene); 

     setCentralWidget(view); 
    } 
}; 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 
    return a.exec(); 
} 

이 문제가 어떻게 생겼는지인가?

편집 : http://i.stack.imgur.com/HeWHJ.png

+1

아쉽게도 PyQt에서이 동작을 재현 할 수 없습니다. PyQt 4.9.1 및 Qt 4.8.1 사용. QGraphicsItem 크기보다 작 으면 일정한 검정색을 얻습니다. 그리고 분명히 QGraphicItem 크기보다 클 때 빨간색 – jdi

+0

@jdi 감사합니다. 4.8.0을 사용하고 있습니다. 4.8.1로 업데이트하여 수정되는지 확인합니다. – Anthony

답변

1

나는 그것을 시도했다 당신은 (0, 0, 300, 300)로 사각형을 변경하면 원하는대로 작동하는지 발견 : 사진을 조금 더 크게 만들려면 여기를 클릭하세요. QGraphicsView에는 네거티브 상단 왼쪽 장면 rect가있는 스크롤 막대 업데이트를 처리하는 데 문제가있는 것으로 보입니다. 버그 리포트를 Qt에 보내야합니다.

+0

Qt의 어떤 버전을 테스트 했습니까? 4.8.1에서이 문제를 전혀 보지 못했습니다. – jdi

+0

그건 저를 위해 고쳐줍니다. 엄청 이상해. @jdi가 언급했듯이 버전 문제 일 수 있습니다. 일단 업데이트하면 버그로보고 할 것입니다. – Anthony

+0

@jdi 4.8.1로 업데이트했는데 문제가 계속 발생합니다! – Anthony

관련 문제