PyQT QMainWindow - как добавить кнопки, слои элементы управления - pyqt add widget to qmainwindow

Чтобы работать с QMainWindow как с обычным виджетом, достаточно - опять же добавить такой виджет на главное окно(QMainWindow).

Идея может быть проиллюстрирована таким кодом:

from PyQt4.QtCore import *
from PyQt4.QtGui  import *

import sys

# этот класс позволяет легко использовать 
# главное меню и другие бонусы QMainWindow
class MyMainWindow(QMainWindow):

    def __init__(self, parent=None):

        super(MyMainWindow, self).__init__(parent)
        self.form_widget = FormWidget(self) 
# Нижи мы паркуем класс виджета  производного от QWidget
# на главном окне ( на  QMainWindow)
        self.setCentralWidget(self.form_widget)   # припарковали =)


# а этот  - виджет - использовать слои и добавлять
# кнопки и иные эжлементы управления
class FormWidget(QWidget):

    def __init__(self, parent):        
        super(FormWidget, self).__init__(parent)
        self.layout = QVBoxLayout(self)

        self.button1 = QPushButton("Button 1")
        self.layout.addWidget(self.button1)

        self.button2 = QPushButton("Button 2")
        self.layout.addWidget(self.button2)

app = QApplication([])
foo = MyMainWindow()
foo.show()
sys.exit(app.exec_())