4

「ScrollBarAlwaysOff」の垂直スクロールバーポリシーを持つQGraphicsViewがあります。問題は、ビューのサイズを調整すると(QSplitterを使用するか、ウィンドウのサイズを調整するだけで)、ビューの右側に空白が表示されることがよくあることです。背景が赤でQGraphicsRectItemが黒の例を次に示します。

#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

4

1 に答える 1

1

試してみたところ、長方形を(0、0、300、300)に変更すると、希望どおりに機能することがわかりました。QGraphicsView左上のシーンが負の方向にあるスクロールバーの更新の処理に問題があるようです。Qtにバグレポートを提出する必要があります。

于 2012-04-16T22:39:47.033 に答える