I don't know how to create a UI with MayaApi, all I have done in the past is something like this:
import pymel.core as pm
winWidth = 400
if pm.window("window", exists=1): pm.deleteUI("window")
pm.window("window", w=winWidth)
with pm.columnLayout('content', adjustableColumn=True):
with pm.rowColumnLayout(nc=1):
pm.text(l="wooo! A window! ")
However, is there a way to create a UI without the use of pymel?
You can use pyqt designer to create a GUI, then pyuic4 to convert it into python. From there you can setup your callbacks and signals in python. Here is a tutorial: http://www.geoffsamuel.com/Tutorials/Intro_Maya_QT.php
Or use the maya.cmds and create your windows and buttons with the built in qt features of maya