[Python_trading] 파이썬_GUI_Layout(1)

QMainWindow 대신 QWidget을 상속 받았다. 이후 QTextEdit과 QPushButton 위젯을 생성했다. 

#gui_layout_1.py
import sys
from PyQt5.QtWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        self.setGeometry(800,200,300,300)
        self.textEdit = QTextEdit(self)
        self.textEdit.resize(280,250)
        self.textEdit.move(10,10)

        self.pushButton=QPushButton('저장',self)
        self.pushButton.resize(280,25)
        self.pushButton.move(10,270)

if __name__=='__main__':
    app=QApplication(sys.argv)
    mywindow=MyWindow()
    mywindow.show()
    app.exec_()


위의 프로그램은 윈도우 크기가 변경될 시에 위젯의 출력 위치와 크기는 변경되지 않기 때문에 이를 수정해 줄 필요가 있다. 윈도우의 크기가 변경될 때 발생하는 시그널과 이를 처리하는 슬롯을 연결 후, 슬롯에서 윈도우 내부 위젯의 크기,위치를 다시 계산 후 재설정 하는 과정을 거쳐야 한다. 

위젯의 크기,출력 위치가 절대값으로 지정될 경우 위와 같은 형태의 프로그램이 생성되므로, PyQt의 레이아웃 매니저를 통해 수정 가능하다. 

PyQt의 레이아웃 매니저에는 QVBoxLayout, QHBoxLayout, QBoxLayout, QGridLayout, QLayout 의 다섯가지 클래스를 제공한다. 

댓글