Можно предположить, что бесконечная линия - это линия, начальная и конечная точки которой находятся за пределами сцены.
Если вы вычислите длину диагонали вашей сцены, у вас будет максимальная видимая длина любой линии.
После этого вы можете использовать QLineF
для создания своей "бесконечной" линии.
Пример с PyQt5:
direction = -45
basePoint = QPointF(200, 200)
maxLength = math.sqrt(scene.width() ** 2 * scene.height() ** 2)
line1 = QLineF(basePoint, basePoint + QPointF(1, 0)) # Avoid an invalid line
line2 = QLineF(basePoint, basePoint + QPointF(1, 0))
# Find the first point outside the scene
line1.setLength(maxLength / 2)
line1.setAngle(direction)
# Find the sceond point outside the scene
line2.setLength(maxLength / 2)
line2.setAngle(direction + 180)
# Make a new line with the two end points
line = QLineF(line1.p2(), line2.p2())
scene.addItem(QGraphicsLineItem(line))