Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

DevStudy

PyQt5 본문

기타

PyQt5

DevStudy 2022. 1. 15. 21:41

그리드 레이아웃

가장 일반적인 레이아웃 클래스는 ‘그리드 레이아웃 (grid layout)’입니다. 이 레이아웃 클래스는 위젯의 공간을 행 (row)과 열 (column)로 구분합니다.

그리드 레이아웃을 생성하기 위해 QGridLayout 클래스를 사용합니다. (QGridLayout 공식 문서)

 

그리드 레이아웃.

 

위 예시 다이얼로그의 경우, 세 개의 행 (row)과 다섯 개의 열 (column)로 구분되어 있고 필요한 위치에 위젯을 배치했습니다.

 

예제

## Ex 4-3. 그리드 레이아웃.

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):
        grid = QGridLayout()
        self.setLayout(grid)

        grid.addWidget(QLabel('Title:'), 0, 0)
        grid.addWidget(QLabel('Author:'), 1, 0)
        grid.addWidget(QLabel('Review:'), 2, 0)

        grid.addWidget(QLineEdit(), 0, 1)
        grid.addWidget(QLineEdit(), 1, 1)
        grid.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_())

세 개의 라벨, 두 개의 라인 에디터, 하나의 텍스트 에디터를 그리드 형태로 배치했습니다.

 

설명

grid = QGridLayout()
self.setLayout(grid)

QGridLayout을 만들고, 어플리케이션 창의 레이아웃으로 설정합니다.

 
 
grid.addWidget(QLabel('Title:'), 0, 0)
grid.addWidget(QLabel('Author:'), 1, 0)
grid.addWidget(QLabel('Review:'), 2, 0)

addWidget() 메서드의 첫번째 파라미터는 추가할 위젯, 두세번째 파라미터는 각각 행과 열 번호를 입력합니다.

세 개의 라벨을 첫번째 열에 수직으로 배치합니다.

 
 
grid.addWidget(QTextEdit(), 2, 1)

QTextEdit() 위젯은 QLineEdit() 위젯과 달리 여러 줄의 텍스트를 수정할 수 있는 위젯입니다. 세번째 행, 두번째 열에 배치합니다.

 
 

결과

 

 

'기타' 카테고리의 다른 글

PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15