Skip to content
toylee blog · 컴퓨터, 프로그램 정보 공유

toylee blog · 컴퓨터, 프로그램 정보 공유

파이썬 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

파이썬

PyQt6 Kubernetes 사용 클라우드 네이티브 GUI 구축

2023년 07월 06일

PyQt6는 파이썬 기반의 강력한 GUI 프레임워크이며, Kubernetes는 컨테이너 오케스트레이션 도구로 널리 사용됩니다. 자, 그럼 PyQt6 Kubernetes 사용 클라우드 네이티브 GUI 구축 같이 알아봅시다.

Read More
파이썬

파이썬 프로그래밍 장점, 단점 알아보자

2023년 08월 30일

파이썬 프로그래밍 언어는 다양한 용도로 사용되는 인기가 있습니다. 그 이유는 간결하고 쉽게 이해할 수 있는 구문을 가지고 있으며, 다양한 작업을 수행하기 위한 많은 라이브러리와 모듈을 제공합니다.

Read More
파이썬

파이썬 range 함수 활용방법 및 예시

2023년 08월 21일

파이썬은 간결하고 효율적인 코드 작성을 돕는 다양한 내장 함수를 제공합니다. 그 중에서도 파이썬 range 함수는 반복문을 사용할 때 유용하게 활용되는 함수 중 하나입니다. 이번 글에서는 파이썬 range 함수의 작동 방식, 활용 방법, 그리고 실제 상황에서의 활용 사례를 알아보겠습니다.

Read More

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • usb 쓰기금지 해제방법, 어렵지 않아요
  • usb a타입에 대해 알아보자
  • 포토샵 누끼따기 방법
  • vpn 연결방법 쉽게 설명해드립니다.
  • usb 장치 인식 실패시 해결방안

최신 댓글

  1. 윈도우 단축키 모음 Best5의 ace
  2. http https 차이의 챗GPT 란? · Working for you

보관함

  • 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
  • linux
  • macbook
  • Pc Useful Tips
  • 미분류
  • 워드프레스
  • 자바(Java)
  • 파이썬
  • 프로그래밍
©2025 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes