군침이 싹 도는 코딩

Pyside2 레이아웃 ( Box Layout ) 본문

Python/Pycharm

Pyside2 레이아웃 ( Box Layout )

mugoori 2023. 5. 26. 11:46
import sys
from PySide2.QtWidgets import QApplication, QWidget, \
    QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QLabel

class Form(QWidget):
    def __init__(self):
        super(Form, self).__init__()
        # 메인창에 타이틀 제목을 표시한다
        self.setWindowTitle('레이아웃 테스트')
        # V 박스 하나를 만든다
        self.vb = QVBoxLayout()
        # V 박스를 메인창에 세팅한다
        self.setLayout(self.vb)

        # H 박스 3개를 만든다
        self.hbTop = QHBoxLayout()
        self.hbMid = QHBoxLayout()
        self.hbBot = QHBoxLayout()

        # H 박스 3개를 V 박스 안에 넣는다
        self.vb.addLayout(self.hbTop)
        self.vb.addLayout(self.hbMid)

        # 창을 늘릴때 다른 레이아웃들 대신 늘어난다
        self.vb.addStretch()

        self.vb.addLayout(self.hbBot)

        # -- 위젯을 만든다 --

        # 레이블 한개를 만든다
        self.lbl = QLabel('박스 레이아웃 예제')

        # 라인 에디트 한개를 만든다
        self.ln = QLineEdit()

        # 푸시버튼 3개를 만든다
        self.btn1 = QPushButton('출력')
        self.btn2 = QPushButton('지우기')
        self.btn3 = QPushButton('출력하고 지우기')

        # 위쪽 b 박스에 레이블을 넣는다
        self.hbTop.addWidget(self.lbl)

        # 중간 b 박스에 라인 에디트와 버튼 1을 넣는다
        self.hbMid.addWidget(self.ln)
        self.hbMid.addWidget(self.btn1)



        # 아래 b 박스에 버튼 2를 넣는다
        self.hbBot.addWidget(self.btn2)

        # 창을 늘릴때 다른 레이아웃들 대신 늘어난다
        self.hbBot.addStretch()

        # 아래 b 박스에 버튼 3을 넣는다
        self.hbBot.addWidget(self.btn3)

        # 버튼에 기능을 정의한 메서드를 연결해준다
        self.btn1.clicked.connect(self.prt_line)
        self.btn2.clicked.connect(self.del_line)
        self.btn3.clicked.connect(self.prt_del)

    # 기능을 정의해주는 메서드를 구현한다
    def prt_line(self):
        print(self.ln.text())

    def del_line(self):
        self.ln.clear()

    def prt_del(self):
        self.prt_line()
        self.del_line()


app = QApplication([])
form = Form()
form.show()
sys.exit(app.exec_())

 

# PyQt5 와 PySide2 

Qt 프레임워크 기반으로 개발된 프레임워크이며 Qt 프레임워크란 크로스플랫폼 애플리케이션 개발을 위한 도구이다두 프레임워크는 비슷한 문법과 API를 가지고 있지만 PyQt5는 오래된 프레임워크이기에 다양한 문서 예제 튜토리얼이 존재하는 반면 PySide2는 개발된지 얼마안됐기에 문서 및 자료가 상대적으로 적다. 그러나 PySide2가 공식 파이썬 바인딩이기때문에 지속적인 개발 및 업데이트를 받는다

 

'Python > Pycharm' 카테고리의 다른 글

PySide2 레이아웃 ( Grid Layout )  (0) 2023.05.26
PySide2 레이아웃 ( Form Layout )  (0) 2023.05.26
간단한 팁  (0) 2023.05.26
PyQt5 배포 파일 만들기  (0) 2023.05.26
게임 런처를 만들던중 발생한 문제점 (1)  (0) 2023.05.26