본문 바로가기
프로그래밍/그외

[PyQt] QMainWindow

by 써드아이 2019. 6. 24.

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