import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QHBoxLayout, QVBoxLayout, QGridLayout from layout_colorwidget import Color class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("My App") layout1 = QHBoxLayout() layout2 = QVBoxLayout() layout3 = QVBoxLayout() layout4 = QGridLayout() layout2.addWidget(Color("red")) layout2.addWidget(Color("green")) layout2.addWidget(Color("blue")) layout1.addLayout(layout2) layout1.addWidget(Color("green")) layout3.addWidget(Color("red")) layout3.addWidget(Color("purple")) layout1.addLayout(layout3) layout4.addWidget(Color("red"), 0, 0) layout4.addWidget(Color("green"), 1, 0) layout4.addWidget(Color("blue"), 1, 1) layout4.addWidget(Color("purple"), 2, 1) layout1.addLayout(layout4) layout1.setContentsMargins(10, 5, 10, 5) widget = QWidget() widget.setLayout(layout1) self.setCentralWidget(widget) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())