1. 코드

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QGridLayout  
from PyQt5.QtCore import Qt

class 격자레이아웃(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        insert = QPushButton('Insert') 
        home = QPushButton('Home')
        pageUp = QPushButton('Page Up')
        delete = QPushButton('Delete')
        end = QPushButton('End')
        pageDown = QPushButton('Page Down')
        keyboard = QLabel('KeyBoard')

        grid = QGridLayout()
        grid.setSpacing(15) 

        grid.addWidget(insert, 0, 0) 
        grid.addWidget(home, 0, 1) 
        grid.addWidget(pageUp, 0, 2)

        grid.addWidget(delete, 1, 0)
        grid.addWidget(end, 1, 1)
        grid.addWidget(pageDown,1,2)

        grid.addWidget(keyboard, 2, 0, 2, 3, alignment=Qt.AlignHCenter)
        self.setLayout(grid)

        self.setGeometry(300, 300, 350, 200)
        self.setWindowTitle('Review')
        self.show()

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 격자레이아웃()
프로그램무한반복.exec_()

2. 상세 내용

격자 레이아웃은 아래와 같이 격자로 레이아웃을 설정하고, 그곳에 아이템을 배치하는 형태입니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b7709e13-1c68-4118-a4bd-4e4007354084/Untitled.png

아래 모듈을 import함으로 격자 레이아웃을 사용할 수 있습니다. 앞서 주의를 드렸던 것처럼 다른 레이아웃을 아이템에 배치하려는 상황일 경우 addWidget이 아니라 addLayout을 사용하셔야 합니다.

from PyQt5.QtWidgets import QGridLayout  

QGridLayout - Qt for Python

정렬 기능을 사용하기 위해 Qt 라이브러리를 추가합니다. 또한 색상 등 여러가지 옵션을 추가할 수 있습니다.

from PyQt5.QtCore import Qt

Qt는 색 지정, 정렬에서 많이 쓰이는 라이브러리 이므로 한 번 살펴보시길 권해드립니다.

Qt - Qt for Python