I have found enaml to be invaluable to my work (writing simple UIs for scientific applications), and much more intuitive to use that PyQt or TraitsUI. It provides an extremely expressive mechanism to react to (nested) changes in the UI or the model.
TraitsUI was a cool idea, but not implemented that well. Enaml carries it to perfection. I love how enaml provides a ton of functionality, while it doesnt get in the way of experimentation. Just see the matplotlib widget [1] how easy it is to integrate other widgets.