> What if it is destroyed only when python collects the Canvas? 

I think this is what happens by default. But this probably briefly activates the context, so if it happens while we are drawing to *another* canvas, things get messed up. 

Therefore we need to explicitly destroy them. Yes, this differs from normal Qt, but I don't think this particular case matters much. In situation where it matters, a user can very easily wrap the widget in another to prevent this behavior. But perhaps we should document it a bit better on `Canvas.close()`