I find it more common usually to derive from QGraphicsView than the derive from QGraphicsScene. However, deriving from QGraphicsScene allows you to implement member functions that give convenient access (by name, so to speak) to specific scene elements. I did this for a 2-D data plotting widget (similar to QwtPlot) so that I could retrieve titles, axes, etc. by name: getAxis( yLeft ) for example. The scene managed the layout of these scene elements depending on their visibility and appearance attributes.
More recently I reimplemented this widget as a pure QWidget containing QLayouts to manage the size and positioning of titles, axes, etc. The central plotting canvas is now derived from QGraphicsView but uses a plain vanilla QGraphicsScene to hold the things to be plotted - the x-y data items mainly. The plot decorations (axes, titles, etc.) are self-contained QWidgets and do their own drawing independently of the scene.
It's a tradeoff - if you have entities that you would like to organize, layout, and access by name, then deriving from QGraphicsScene allows you to let your custom scene do the organizing and provide access methods instead of using some external data structure for the same thing. If the organizing is better done through an external data structure, then using a plain QGraphicsScene will generally suffice.
Bookmarks