I think this would be a good place to let the backends differ. I'd much
prefer if the Qt widget has all of the expected behaviors for normal Qt
widgets, and doesn't need to inherit the weaknesses of other backends.

What if it is destroyed only when python collects the Canvas? That seems to
be the more pythonic approach..

I'm also rather concerned by the statement that "if more than one window is
open things get messy". What exactly is meant by this (and shouldn't it be
fixed, rather than avoided) ?