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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在QGraphicsview中超越滚动条范围?相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

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

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

另一答案

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

另一答案

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

以上是关于如何在QGraphicsview中超越滚动条范围?的主要内容,如果未能解决你的问题,请参考以下文章

QGraphicsView 自定义滚动条

带有滚动条的 QGraphicsView 内不需要的边距

QGraphicsView 滚动条策略未按预期工作

QGraphicsView 适合任何大小的图像,没有滚动条

如何在 qgraphicsview 中进行非平滑/逐步 scolling

滚动 QGraphicsView 和 QGraphicsScene