그리드 레이아웃은 위젯의 공간을 행(row)과 열(column)로 구분합니다.
세 개의 라벨, 두 개의 라인에디터, 하나의 텍스트 에디터를 그리드 레이아웃에 배치합니다.
14-1 예제: ex13
import sys from PyQt5.QtWidgets import (QApplication, QWidget, QGridLayout, QLabel, QLineEdit, QTextEdit) class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): gridLayout = QGridLayout(self) #self.setLayout(gridLayout) gridLayout.addWidget(QLabel('Title'), 0, 0) gridLayout.addWidget(QLabel('Author'), 1, 0) gridLayout.addWidget(QLabel('Review'), 2, 0) gridLayout.addWidget(QLineEdit(), 0, 1) gridLayout.addWidget(QLineEdit(), 1, 1) gridLayout.addWidget(QTextEdit(), 2, 1) self.setWindowTitle('QGridLayout') self.setGeometry(300, 300, 300, 200) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) |
14-2
gridLayout = QGridLayout() self.setLayout(gridLayout) |
- QGridLayout 을 만들고, QWidget에 레이아웃을 설정합니다.
gridLayout.addWidget(QLabel('Title'), 0, 0) gridLayout.addWidget(QLabel('Author'), 1, 0) gridLayout.addWidget(QLabel('Review'), 2, 0) gridLayout.addWidget(QLineEdit(), 0, 1) gridLayout.addWidget(QLineEdit(), 1, 1) gridLayout.addWidget(QTextEdit(), 2, 1) |
- addWidget() 메서드를 사용하여 레이아웃에 위젯을 배치한다.
- addWidget의 첫 번째 파라미터는 배치할 위젯, 두 번째와 세 번째는 각각 행과 열 번호를 입력합니다.
- 라벨은 수직으로 배치하고, 그 옆 수평으로 다시 라인텍스트와 텍스트에디터를 수직으로 배치합니다.
14-3 결과
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
16. QLabel (0) | 2021.07.23 |
---|---|
15. QPushButton (0) | 2021.07.23 |
13. 박스 레이아웃 (0) | 2021.07.22 |
12. 절대적 배치 (0) | 2021.07.22 |
11. StyleSheet (스타일 꾸미기) (0) | 2021.07.22 |