如何在QGraphicsview中超越滚动条范围?

问题描述 投票:5回答:3

我正在QGraphicsView中构建节点图,我正在实现平移。我使用了以下问题“how to pan images in QGraphicsView”开始,但是平移受滚动条范围的限制。

我也尝试了翻译方法,但它给出了相同的结果。视图仅限于某个矩形。

我想无限制地平移,图形可以变得非常大,并且能够在场景的不同区域工作是有用的(这里有一个图形,那里有另一个图形等)。

qt pyside qgraphicsview
3个回答
7
投票

如果你看看this video,在3分钟的标记处,你会看到演示平移屏幕。这里的应用程序是我开发的应用程序,虽然它没有显示,但是在平移时,电路板的不动产似乎是无限的。

我为此做的是创建一个32000 x 32000的QGraphicsScene,并以QGraphicsScene中心的视图启动应用程序。测试团队花了很多时间尝试平移到图形场景的边缘,每个人都在放弃之前放弃了 - 也许场景可能更小!

滚动条策略设置为关闭,并通过移动QGraphicsView的translate函数完成转换,传递在mouseMoveEvent中应用的触摸或鼠标移动的增量。

通过这种方式,你不必担心超出滚动条范围,并且创建一个非常大的QGraphicsScene没有问题,因为它只是一个坐标空间。


0
投票

我遇到了同样的问题。然而,将场景设置为大而且离开它我不认为是最好的选择。我开发了一种动态的方式来改变场景大小,让你可以自由移动。你可以在这个其他堆栈溢出answer中找到它。


-2
投票

你想绘制图表。尝试这个Qt库 - QCustomPlot,它将为您节省数小时的努力。

© www.soinside.com 2019 - 2024. All rights reserved.