It turns out to be quite difficult to convince PyQt to delete widgets after
closing them, so just hide instead.  Before it was leaking memory, now
it re-uses the widget.  I found typical memory use to be about:

Base:  50MB
Euphoria: 10MB
Way-V:  ~0.1MB
Ray-V:  ~0.1MB
Modulex:  ~0.1MB

Total Peak:  ~100MB

So it's still very acceptable to cache the windows and just hide them,
plus there is the added benefit of faster opening and recalling more
settings between opening/closing.