[PyQt5] 레이아웃, 배치, 그리드, 행열, 테이블
2020. 2. 12. 10:30ㆍIT/PyQt5
정렬 방식 중 그리드 방식 있습니다. 상대배치로 창 크기에 따라 동적으로 크기가 조절되며 박스 레이아웃과 다르게 테이블 구조로 되어 있습니다. 비율이 아닌 행과 열의 정보를 입력하여 배치합니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QLabel, QLineEdit, QTextEdit
class gridLayoutApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
grid.addWidget(QLabel('그리드1'), 0, 0)
grid.addWidget(QLabel('그리드2'), 1, 0)
grid.addWidget(QLabel('그리드3'), 2, 0)
grid.addWidget(QLineEdit(), 0, 1)
grid.addWidget(QLineEdit(), 1, 1)
grid.addWidget(QTextEdit(), 2, 1)
self.setWindowTitle('그리드 레이아웃')
self.setGeometry(500,500,300,200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = gridLayoutApp()
sys.exit(app.exec_())
복잡해 보이지만 구조는 단순합니다. QGridLayout()로 그리드 객체를 만든다음 각 위치에 맞추어 위젯을 추가해줍니다.
grid.addWidget(QLabel('그리드1'), 0, 0)에서 뒤에 있는 0, 0은 각각 행과 열을 의미합니다. 숫자가 1이 아니라 0부터 시작한다는 점을 주의해야 합니다. 2, 1이라고 하면 세번째 행, 두번째 열을 의미합니다.
'IT > PyQt5' 카테고리의 다른 글
[PyQt5] 위젯, 레이블, 라벨, 텍스트, 글 (0) | 2020.02.12 |
---|---|
[PyQt5] 위젯, 버튼, 입력, 시그널, 매소드 (0) | 2020.02.12 |
[PyQt5] 레이아웃, 배치, 박스, 가로, 세로 (0) | 2020.02.12 |
[PyQt5] 레이아웃, 배치, 절대, 위치 (0) | 2020.02.12 |
[PyQt5] 라벨, 스타일, 색상, 선 (0) | 2020.02.11 |