🌐

004 격자(Grid) 레이아웃

 

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. 상세 내용

격자 레이아웃은 아래와 같이 격자로 레이아웃을 설정하고, 그곳에 아이템을 배치하는 형태입니다.
 
notion imagenotion image
 
아래 모듈을 import함으로 격자 레이아웃을 사용할 수 있습니다. 앞서 주의를 드렸던 것처럼 다른 레이아웃을 아이템에 배치하려는 상황일 경우 addWidget이 아니라 addLayout을 사용하셔야 합니다.
 
from PyQt5.QtWidgets import QGridLayout
 
정렬 기능을 사용하기 위해 Qt 라이브러리를 추가합니다. 또한 색상 등 여러가지 옵션을 추가할 수 있습니다.
 
from PyQt5.QtCore import Qt
 
Qt는 색 지정, 정렬에서 많이 쓰이는 라이브러리 이므로 한 번 살펴보시길 권해드립니다.
 
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)
  1. setSpacing(위젯간 간격) : 설정하지 않을 경우 위젯끼리 겹침
  1. addWidget(추가할 위젯, 행, 열)
  1. addWidget(추가할 위젯, 행, 열, 확장시킬 행, 확장시킬 열)
      • 즉, 2행 0열에서 2행 2열(3-1)까지 확장 시킵니다.
      • 특히, 레이아웃에 위젯을 추가할 때, alignment=Qt.Align{위치}처럼 인자를 주어 정렬이 가능
      • 아래 그림과 같이 여러가지 옵션을 주어 정렬이 가능합니다.
        • notion imagenotion image

3. 실행 화면

notion imagenotion image