我正在QGraphicsView中构建节点图,我目前正在实施平移。 我使用了以下问题“how to pan images in QGraphicsView”来开始,但是平移受滚动条范围的限制。
我也尝试了翻译方法,但它给出了相同的结果。视图仅限于某个矩形。
我想无限制地平移,图形可以变得非常大,能够在场景的不同区域工作是很有用的(这里有一个图形,那边有另一个图形等)。
答案 0 :(得分:7)
如果你看一下this video,在3分钟的标记处你会看到演示平移屏幕。这里的应用程序是我开发的,虽然没有显示,但是在平移时,电路板的不动产似乎是无限的。
我为此做的是创建一个32000 x 32000的QGraphicsScene并以QGraphicsScene中心的视图启动应用程序。测试团队花了很多时间试图平移到图形场景的边缘,每个人在到达那里之前都放弃了 - 也许这个场景可能更小了!
滚动条策略设置为关闭并通过移动QGraphicsView通过其translate函数完成转换,传递在mouseMoveEvent中应用的触摸或鼠标移动的增量。
通过这种方式,你不必担心超出滚动条范围,并且创建一个非常大的QGraphicsScene没有问题,因为它只是一个坐标空间。
答案 1 :(得分:0)
我遇到了同样的问题。但是,将场景设置为较大的场景并保留它并不是我的最佳选择。我已经开发了一种动态方法来更改场景大小,以便您自由移动。您可以在另一个堆栈溢出answer中找到它。
答案 2 :(得分:-2)
您想绘制图表。试试这个Qt库 - QCustomPlot,它将为您节省数小时的努力。