2012-04-16 12 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(); 
} 

は、問題がどのように見えるのですか?

EDIT:画像が少し大きくするにはこちらをクリックしてください: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は、負の左上のシーンの矩形でスクロールバーを更新する問題を抱えているようです。バグ報告をQtに提出する必要があります。

+0

Qtのどのバージョンでこれをテストしましたか?私はこの問題を4.8.1で一切見ませんでした。 – jdi

+0

それは私のためにそれを修正します。非常に奇妙な。 @jdiが述べたように、それはバージョンの問題かもしれません。一度更新すれば、バグとして報告します(そしてここで)。 – Anthony

+0

@jdi 4.8.1にアップデートしましたが、問題はまだ発生します! – Anthony

関連する問題