7

我正在 QGraphicsView 中构建节点图,目前正在实现平移。我使用以下问题“如何在 QGraphicsView 中平移图像”开始,但平移受到滚动条范围的限制。

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

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

4

3 回答 3

11

如果您观看此视频,在 3 分钟标记处您将看到平移屏幕的演示。这里的应用程序是我开发的一个,虽然它没有显示,但在平移时,棋盘的空间似乎是无限的。

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

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

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

于 2013-10-07T08:35:28.123 回答
0

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

于 2019-03-07T11:59:33.713 回答
-3

你想绘制图表。试试这个 Qt 库 - QCustomPlot,它将为您节省数小时的辛勤工作。

于 2013-10-06T19:56:07.583 回答