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

파이썬

작업표시줄 아이콘 사라짐 해결방법

2024년 08월 21일

작업표시줄의 아이콘이 사라지는 문제는 많은 사용자들에게 불편을 초래할 수 있습니다. 이 문제는 다양한 원인으로 인해 발생할 수 있으며, 해결 방법을 모르면 작업의 효율성이 크게 저하될 수 있습니다. 작업표시줄 아이콘이 사라지면 중요 알림을 놓치거나 작업에 지장을 받을 수 있습니다. 본 문서에서는 작업표시줄 아이콘이 사라졌을 때의 일반적인 원인과 이를 해결하기 위한 방법을…

Read More
파이썬

파이썬 기초 문법과 활용 예제

2024년 05월 07일

파이썬은 강력하고 다양한 기능을 가진 프로그래밍 언어로, 기초 문법을 이해하고 활용하는 것은 프로그래밍을 시작하는 데 있어 중요한 첫걸음입니다. 이 글에서는 파이썬의 기초 문법과 활용 예제에 대해 자세히 살펴보겠습니다. 파이썬을 공부하면서 코딩의 세계에 입문하고 싶은 분들에게 도움이 될 것이라고 기대합니다. 파이썬은 간결하고 가독성이 높아서 많은 개발자들이 선택하는 언어 중 하나입니다. 변수, 조건문, 반복문 등의 기본적인 문법을 이해하면 간단한 프로그램을 작성할 수 있으며, 더 나아가 다양한 프로젝트를 구현할 수 있게 됩니다. 또한 파이썬은 데이터 분석, 인공지능, 웹 개발 등 다양한 분야에서 활용되므로, 학습하는 가치가 크다고 할 수 있습니다. 이 문서를 통해 파이썬의 기초 문법을 이해하고 활용하는 방법을 자세히 알아보겠습니다.

Read More
파이썬

PyQt6 디버깅-버그 찾기, 수정하는 팁과 요령

2023년 05월 29일

디버깅은 소프트웨어 개발의 중요한 부분이며 PyQt6 애플리케이션에서 버그를 식별하고 수정하는 것은 어려울 수 있습니다. PyQt6 애플리케이션에서 버그를 식별하고 수정하기위한 팁과 요령을 제공합니다. PyQt6 디버깅 공부해봅시다.

Read More

최신 글

  • 자동화 스크립트 설계 순서: 실패 없는 반복 업무 자동화 구축 방법
  • 시맨틱 태그를 써야 하는 이유와 의미 있는 웹 문서 작성 방법
  • 워드프레스 스팸 댓글 관리 기본 설정: 악성 링크와 광고 차단 요령
  • 파이썬 CSV 자동 정리 스크립트 작성법과 표준 라이브러리 활용법
  • 브라우저 캐시 삭제가 필요한 경우와 안전하게 정리하는 방법 정리

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 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