1

什么是创建一条线(QGraphicsLineItem)的最佳方式,它从场景中的某个点开始并以某个角度继续无穷大。

我目前这样做的方法是计算线是否与视图相交并绘制线段。

有没有更好的办法?

例如,我可以将线条长度设置为某个巨大的数字吗?

4

1 回答 1

0

您可以定义它的paint() 和shape() 函数,以便它们始终使用场景内所有可用和需要的空间,即在qgraphicsview 的可见部分内。

指导方针:

  • 检查 qgraphicsview、qgraphicsscene 和 qgraphicsitem 的映射函数(mapToScene、mapToItem、mapToView 或类似的东西)
  • 定义你的 shape() 和 paint() 函数,就好像你的线在整个视图中都很长(通过使用上面的映射函数)

因此,无论用户如何移动他的视图,repaint 都会检查 qgraphicsview 使用的空间并精确地绘制那么长。产生了一种错觉,即这条线一直在继续。

于 2012-05-19T19:40:03.177 回答