Working for you

it, 인터넷, 컴퓨터, 프로그램 정보 공유

파이썬 pyqt6 레이아웃 배치

GUI 프레임워크를 사용하면 손쉽게 다양한 기능을 구현할 수 있습니다. 그러나 그만큼 복잡한 구조를 가지고 있기 때문에, 처음 접하는 사용자들에게는 어려울 수 있습니다. 이런 상황에서 PyQt6는 다양한 레이아웃을 제공하여 사용자들이 쉽게 GUI를 구성할 수 있도록 도와줍니다. 파이썬 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()
 
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, 00)
        grid.addWidget(nameEdit, 01)
        grid.addWidget(ageLabel, 10)
        grid.addWidget(ageEdit, 11)
 
        self.setGeometry(300300350250)
        self.setWindowTitle(‘Grid layout’)
        self.show()
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = MyWidget()
    app.exec()
 
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()
 
cs

[실행화면]

파이썬 PyQt6 레이아웃 배치3

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

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

[관련글]

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

python 설치 및 다운로드

mysql 사용법 및 명령어 총정리

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

답글 남기기

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