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 回答