[pyqt5] 기본레이아웃 만들기
아래의 화면은 flutter 공식홈페이지에서 가져왔다. 플러터의 튜토리얼을 이용한 이유는 개념이 비슷하기 때문이다.
(이 개념은 html로 따지면 div에 이미 flex박스의 flex-direction: 속성이 걸려 있는 것과 같다. 하지만 플렉스박스 이전에 div를 float해서 레이아웃을 만드는 법과는 다르기 때문에 개념의 차이점을 정확히 아는게 중요할 것 같다.)
아래의 화면은 Row와 Column 위젯이 엮여져서 만들어 졌다.(nested)
화면을 만들때 즉 큰 레이아웃부터 작은 레이아웃으로 만들어 나가면 된다.
위의 로우는 Row는 하나의 칼럼과 하나의 이미지로 구성되어 있다.
그리고 칼럼은 텍스트, 텍스트, 로우, 로우 위젯으로 구성되어 있다.
그렇다면 이러한 방법을 어떻게 PyQt5에 적용 할 수 있을까?
QHBoxLayout() 의 QH는 Q horizontal 을 의미한다. 즉 가로방향(로우)의 구성을 말한다.
아래의 코드는 즉 row의 구성을 만든뒤
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(yesButton)
hbox.addWidget(noButton)
hbox.addStretch(1)
이러한 형식으로 가로의 레이아웃이 잡힌다.
Yes button | yes button |
QVBoxLayout() 즉, 세로방향의 구성에 넣는다.
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
vbox.addStretch(1)
yes button | no botton | ||
이렇게 하면 기본적인 PyQT5의 기본적인 레이아웃을 잡을 수 있다.
'Computer 비관심 > PyQt5' 카테고리의 다른 글
[TKINTER/PYQT] 티케이인터 자동 새로고침 적용하기(HOT RELOAD) (0) | 2022.08.29 |
---|---|
파이썬으로 이미지 다운로드 하기 (2) | 2020.11.10 |
[PYQT5]레퍼런스 사이트 (0) | 2020.07.18 |
[PYQT5] 프린트 할 위젯 선택하고 프린트 하는 예제 (1) | 2020.07.18 |
Visual studio code에서 indentation 일괄적용 (0) | 2019.09.22 |