我有一个QGraphicsView,其垂直滚动条策略为“ScrollBarAlwaysOff”。问题是,当我调整视图的大小时(通过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
答案 0 :(得分:1)
我尝试了一下,发现如果你将矩形改为(0,0,300,300),它可以按照需要运行。似乎QGraphicsView
处理滚动条更新时出现问题,左上角场景为负。您应该向Qt。