I'm writing a CAD program and am thinking of using Qt5 for the GUI. Most of the drawing objects are curves, of a kind peculiar to surveying, but I can approximate them arbitrarily closely with chains of cubic Bézier splines. The view will usually be directly from above with parallel rays, but there may be cases where I'll want to tilt the view. I'll need to do hit-testing, including finding the intersection of two lines, finding the foot of perpendicular to a line, etc. Is there a widget designed for this, or should I subclass QWidget and implement it myself?