我想在它的全景使用QGraphicsScene显示图片。但是当我把QgraphicsScene放在QGraphicsView中时,我得到一个滚动条。我尝试了很多方法,但都是去静脉。那么有人可以告诉我如何在没有滚动条的情况下获得完整的视图。Qt - QGraphicsView无滚动条
5
A
回答
5
QGraphicsView v;
v.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
v.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
要以编程方式调整滚动,一旦隐藏这些滚动,请使用v.ensureVisible()
的重载之一。
8
您可能会看到滚动条,因为场景大于图形视图中的可用区域。默认情况下,QGraphicsView带有1像素的边距。为了解决这个问题,你可以尝试:
QRect rcontent = graphicsView.contentsRect();
graphicsView.setSceneRect(0, 0, rcontent.width(), rcontent.height());
我已经得到滚动条,因为我是手动设置现场RECT到图形项目我添加的大小 - 这是作为的QGraphicsView小部件一样大。我没有考虑到保证金。
有没有办法只禁用1像素的边距?你的代码为我解决了这个问题,但它仍然看起来像是一个明显的错误修正。 – Trilarion 2014-04-04 10:47:33
不是;该边界在'fitInView'中被硬编码(见QTBUG-11945)。摆脱它的唯一方法是编写自己的'fitInView'。已经有一些讨论通过API公开了这个保证金,但是还没有将它变成任何Qt版本。 – AndrewS 2014-04-04 15:25:39