Thanks for the reply, I have finally managed to get something to partly work. I was originally trying to subclass a QGraphicsScene, but it looks like this is not what you are supposed to do. Instead you are supposed to use the PlotWidget's scene, is that correct?
It looks like that scene draws over the entire plot, so including on top of the axes, rather than inside the ViewBox. And it looks like it ignores the zooming / panning of the plot. I guess both of these make sense.
It also looks like the useOpenGL flag is irrelevant for this purpose, and the documentation implies (if I am understanding it correctly) that this flag is in case you want the Qt drawing to use OpenGL, rather than if you happen to want to draw in OpenGL.
One niggle is that if you click with the mouse the OpenGL disappears, but presumably that is because the code is missing some function call.
It also looks like the ViewBox drawing is done before the rest of the scene drawing. (We want the OpenGL to be the bottom layer, so to speak.)
I've attached a file in case this is completely wrong approach (the code is not minimal but near enough).