One thing you can do is build some UI files, then get python to compile them. Look at the resulting code. You will line after line of widget creation, setup, and adding to the layout. This, plus looking at some of the programmatic dialogs, should help you get started.
Another thing you can do -- use UI files, let python compile them, then capture the resulting _ui.py and put it into your plugin's zip file. No client-side ui compilation would be necessary.