Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

파이썬 PyQt6 레이아웃 배치

toylee, 2023년 05월 18일

GUI 프레임워크를 사용하면 손쉽게 다양한 기능을 구현할 수 있습니다. 그러나 그만큼 복잡한 구조를 가지고 있기 때문에, 처음 접하는 사용자들에게는 어려울 수 있습니다. 이런 상황에서 PyQt6는 다양한 레이아웃을 제공하여 사용자들이 쉽게 GUI를 구성할 수 있도록 도와줍니다. 파이썬 PyQt6 레이아웃 배치 구성을 알아보겠습니다.

[목차]

  • 1. 수직, 수평 레이아웃 – QHBoxLayout & QVBoxLayout
  • 2. 그리드 레이아웃 – Grid Layout
  • 3. 폼 레이아웃 – Form Layout
  • 4. 파이썬 PyQt6 레이아웃 배치 – 결론

1. 수직, 수평 레이아웃 – QHBoxLayout & QVBoxLayout

PyQt6의 가장 기본적인 레이아웃은 QHBoxLayout과 QVBoxLayout입니다. QHBoxLayout은 수평으로 위젯을 배치하고, QVBoxLayout은 수직으로 위젯을 배치합니다. 이 두 레이아웃은 QWidget 클래스의 addLayout 메서드를 사용하여 다른 레이아웃에 추가할 수도 있습니다.

예를 들어 수평 레이아웃 안에 수직 레이아웃을 추가하여, 수평으로 위젯을 배치하면서 그 안에서 수직으로 위젯을 배치할 수 있습니다. 이렇게 중첩된 레이아웃을 사용하면 더욱 복잡한 UI 또한 만들 수 있습니다.

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
31
32
33
from PyQt6.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QLabel, QLineEdit
 
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        # Create a label and a line edit widget
        label = QLabel(‘Enter your name:’)
        line_edit = QLineEdit()
 
        # Create a horizontal layout and add the label and line edit to it
        hbox = QHBoxLayout()
        hbox.addWidget(label)
        hbox.addWidget(line_edit)
 
        # Create a second label and add it to a vertical layout
        message_label = QLabel(‘Welcome!’)
 
        vbox = QVBoxLayout()
        vbox.addLayout(hbox) # Add the horizontal layout to the vertical layout
        vbox.addWidget(message_label)
 
        self.setLayout(vbox)
        self.setWindowTitle(‘Layout Example’)
        self.show()
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = MyWidget()
    app.exec()
 
Colored by Color Scripter
cs

[실행화면]

파이썬 PyQt6

2. 그리드 레이아웃 – Grid Layout

PyQt6에서 가장 많이 사용되는 레이아웃 중 하나는 QGridLayout입니다. QGridLayout은 그리드 형식으로 위젯을 배치합니다. 이 레이아웃은 addWidget 메서드를 사용하여 위젯을 추가할 수 있습니다. 각 셀에 대한 행 및 열 번호를 지정하여 위젯을 배치할 수도 있습니다.

그리드 레이아웃은 화면을 그리드 형식으로 나누어 배치하기 때문에, 특히 데이터 표시에 적합합니다. 예를 들어, 테이블 뷰에서 각 셀에 대한 데이터를 표시하는 경우 그리드 레이아웃을 사용하면 각 셀을 쉽게 배치할 수 있습니다. 또한, 그리드 레이아웃은 유연한 크기 조정을 지원하기 때문에, 다양한 크기의 화면에 대해 레이아웃을 설정할 수 있습니다.

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
31
from PyQt6.QtWidgets import QApplication, QWidget, QGridLayout, QLabel, QLineEdit
 
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        grid = QGridLayout()
        self.setLayout(grid)
 
        nameLabel = QLabel(‘Name:’)
        nameEdit = QLineEdit()
 
        ageLabel = QLabel(‘Age:’)
        ageEdit = QLineEdit()
 
        grid.addWidget(nameLabel, 0, 0)
        grid.addWidget(nameEdit, 0, 1)
        grid.addWidget(ageLabel, 1, 0)
        grid.addWidget(ageEdit, 1, 1)
 
        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle(‘Grid layout’)
        self.show()
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = MyWidget()
    app.exec()
 
Colored by Color Scripter
cs

[실행화면]

파이썬 PyQt6 레이아웃

3. 폼 레이아웃 – Form Layout

폼 레이아웃은 라벨과 위젯을 함께 사용하여 폼을 만드는 레이아웃입니다. 이 레이아웃은 QLabel과 QLineEdit과 같은 위젯을 사용하여 작성됩니다. 이 레이아웃은 QLabel을 위젯과 함께 사용하며, 위젯은 QLineEdit과 같은 입력 위젯이 될 수 있습니다.

폼 레이아웃은 사용자로부터 입력을 받아 처리해야 하는 경우, 특히 유용합니다. 예를 들어, 로그인 창 등에서 사용자 이름과 비밀번호를 입력받는 폼을 만들 때 폼 레이아웃을 사용하면 쉽게 구현할 수 있습니다. 또한, 폼 레이아웃은 라벨과 입력 위젯을 쉽게 정렬할 수 있기 때문에, UI의 일관성을 유지하는 데에도 도움이 됩니다.

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
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QFormLayout
 
 
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        layout = QFormLayout()
 
        name_label = QLabel(‘Name:’)
        name_input = QLineEdit()
 
        email_label = QLabel(‘Email:’)
        email_input = QLineEdit()
 
        layout.addRow(name_label, name_input)
        layout.addRow(email_label, email_input)
 
        self.setLayout(layout)
        self.setWindowTitle(‘Form Layout’)
        self.show()
 
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = MyWidget()
    app.exec()
 
Colored by Color Scripter
cs

[실행화면]

파이썬 PyQt6 레이아웃 배치3

4. 파이썬 PyQt6 레이아웃 배치 – 결론

PyQt6는 다양한 레이아웃을 제공하여 아름다운 GUI를 쉽게 만들 수 있습니다. QHBoxLayout, QVBoxLayout, QGridLayout 및 폼 레이아웃을 사용하여 GUI를 구성하는 방법을 익히면 원하는 대로 GUI를 만들 수 있습니다. 이번 글이 PyQt6를 처음 접하는 분들에게 도움이 되었기를 바랍니다.

[관련글]

파이참 설치 및 세팅(한글, 파이썬 인터프리터)

python 설치 및 다운로드

mysql 사용법 및 명령어 총정리

버추얼박스 setting (가상 윈도우, 리눅스)

파이썬 pyqt6 layout파이썬 레이아웃

글 탐색

Previous post
Next post

Related Posts

파이썬

파이썬 계산기 만들기 – Python Tkinter

2023년 05월 14일

파이썬으로 간단한 계산기를 만들어보는 것은 초보자에게 좋은 학습 방입니다. 파이썬은 인터프리터 언어이기 때문에 계산기를 만드는 것은 매우 쉽습니다. 이번 글에서는 파이썬 계산기 만들기 방법을 알아보겠습니다.

Read More
파이썬

파이썬 for문 – 반복문

2023년 06월 30일

for문은 반복적으로 수행해야 할 일이 있을 때 사용하는 반복문으로, 리스트, 튜플, 문자열과 같은 순회 가능한(iterable) 객체들을 순회하면서 반복적으로 수행됩니다. 이번 글에서는 파이썬 for문 – 반복문 에 대해 알아보겠습니다.

Read More
파이썬

파이썬 딕셔너리 (dictionary) 사용 방법

2023년 07월 02일

오늘은 파이썬 딕셔너리 (dictionary) 사용 방법에 대해 정리합니다. 딕셔너리는 파이썬에서 가장 중요한 데이터 타입 중 하나입니다. 데이터를 저장하고 관리 할 수 있습니다. 딕셔너리(Dictionary)는 키와 값으로 구성되며, 이는 리스트(list)나 튜플(tuple)과 같은 다른 데이터 타입과는 다릅니다. 딕셔너리의 키와 값은 중복이 허용되지 않습니다. 이는 다양한 데이터를 다룰 때 매우 유용합니다. 딕셔너리는 중괄호 {}를…

Read More

최신 글

  • 파이썬으로 날짜와 시간 다루기: datetime과 zoneinfo 활용 방법 정리
  • 노트북 느려질 때 점검 순서: 속도 저하 원인 해결 방법 정리
  • 맥북 배터리 수명 관리 습관: 오래 쓰는 실천 방법 정리
  • 파이썬으로 반복 업무 자동화하기: 엑셀 파일 정리 효율 높이는 방법
  • 기본 HTML 문서 구조 이해하기: 웹사이트 뼈대 만드는 방법

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • Flutter
  • HTML
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes