Been thinking about what you wrote. Imagine a module called SandBox, a template generated with the python script found in the Slicer 3D source tree. It produces the classes SandBox, SandBoxWidget, SandBoxLogic, SandBoxTest.
So do you recommend that I create a new class say SandBoxWidgetUI with mostly GUI stuff and use it in another module like this?
It seems that the names SandBox, SandBoxWidget, SandBoxLogic, SandBoxTest are special and Slicer looks for these functions and makes them available via slicer.modules… unlike my new SandBoxWidgetUI class. I could alternatively reorganize the existing SandBoxWidget() class to make it more useful from another module but that seems less flexible as I would inherit other bits like a constructor I might not need.