Want to make a PyQt4 template for creating any GUI inside maya

while working with maya command module I made a module that has some basic GUI skeleton setup so for every new project i do not have to start from scratch and I can start by inheriting from it, similarly I want to make one for PyQt4

but before I proceed further what I have learnt that Maya Window itself is a QMainWindow , and all other windows inside it are QWidget, so although we can create a QWidget and put toolbars or statusbars or menubars etc as well just like in QMainWindow, so for making a application that runs as maya docked GUI should I setup the base template with class that can inherit from QMainWindow or QWidget ?

the example given in Maya Python book chap 8 uses QMainWindow although

from PyQt4 import QtCore,QtGui
import SIP

import maya.cmds as cmds
import maya.OpenMayaUI as mui

def getMayaMainWindow(QtGui.QMainWindow):
    accessMainWindow=mui.MQUtil.mainWindow()
    return sip.wrapinstance(long(accessMainWindow),QtCore.QObject)

class Window([B]QtGui.QMainWindow[/B]):
    def __init__(self,parent=getMayaMainWindow(),
                 uniqueHandle='PyQtWindow'):
        QtGui.QMainWindow.__init__(self.parent)
        self.setWindowTitle('PyQtWindow')
        self.setObjectName(uniqueHandle)
        self.resize(400,200)
        self.setWindow()
    def setWindow(self):
        #add PyQt window congtrols here in inherited class
        pass