QtWidgets.QMainWindow 는 자체적으로 layout 을 가지고 있다고 한다.
setLayout() 으로 vbox나 hbox layout을 붙여줄 필요가 없다는 뜻이다.
단지 setCentralWidget() 으로 widget을 추가해주면 된다.
###
2019 / 07 / 04 추가
QMainWindow는 위젯을 추가할 때 setCentralWidget() 함수를 사용하여
단 하나만 추가 가능하다. layout이 아니라 위젯을 추가해야한다!!!
여러개의 위젯이 포함된 화면을 만들기위해서 별도의 위젯으로 만들어주어야한다.
QWidget을 상속받은 클래스를 만들어 필요한 레이아웃과 위젯들을 추가해주고
이 클래스의 인스턴스를 생성해서 setCentralWidget() 함수로 메인 함수에 추가해주면 된다.
제길...
####
2020년 3월 26일 추가
from PyQt5.QtWidget import QWidget, QDialog, QApplication, QMainWindow, QLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import ??
QWidget / QDialog
widget = QtWidgets()
layout = Layout()
layout.addWidget(widget)
self.setLayout(layout)
QMainWindow
widget = QWidget() # 위젯의 인스턴스 생성만으로도 QMainWindow에 붙는다.
self.setCentralWidget(widget) # 위젯이 QMainWindow 전체를 차지하게 된다
# 레이아웃을 사용하지 않는 경우 위젯의 인스턴스를 생성할 때 self 인자를 넣어준다 이 경우 부모 위젯의 좌측 상단에 붙어서 나타난다.
widget = QWidget(self)
'프로그래밍 > 그외' 카테고리의 다른 글
[PyQt] 화면 디자인 (layout) (0) | 2019.07.05 |
---|---|
[PyQt5] 다이얼로그의 사용 (0) | 2019.07.02 |
getopt_long 함수 사용예제 (0) | 2018.04.03 |
엔디안 (바이트 오더링)과 구조체 (0) | 2017.06.21 |
[SQL] sql 구문 몇가지 (0) | 2014.06.13 |