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 의 다섯가지 클래스를 제공한다.
댓글
댓글 쓰기