메인화면에 탭 기능 추가 하기 입니다.
import sys
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QTabWidget
class MainScreen(QMainWindow):
def __init__(self, wid, hei):
super().__init__()
self.setWindowTitle("PYQT Project") # 프로젝트 타이틀 설정
self.setGeometry(0, 0, int(wid), int(hei*.9)) # 화면 사이즈 설정
self.mainWidget = QWidget() # 메인 위젯 생성
self.mainLayout = QVBoxLayout(self.mainWidget) # 메인 레이아웃 생성 및 메인 위젯 연결
self.mainTab = QTabWidget() # 탭 위젯 생성
self.mainLayout.addWidget(self.mainTab) # 메인 레이아웃에 텝 위젯 추가
self.setCentralWidget(self.mainWidget) # 메인윈도우 센트럴위젯에 메인 위젯 연결
self.addWidget = QWidget() # 탭에 추가할 위젯 생성
self.addLayout = QVBoxLayout(self.addWidget) # 탭에 추가할 래이아웃 생성 및 위젯 연결
self.addWidget1 = QWidget() # 탭에 추가할 위젯 생성
self.addLayout1 = QVBoxLayout(self.addWidget1) # 탭에 추가할 래이아웃 생성 및 위젯 연결
self.mainTab.addTab(self.addWidget, 'ADD TAB 1') # 탭에 추가
self.mainTab.addTab(self.addWidget1, 'ADD TAB 2') # 탭에 추가
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
size: QSize = app.primaryScreen().size() # 모니터 사이즈
main = MainScreen(size.width()/2, size.height())
sys.exit(app.exec_())
탭 위젯을 생성 합니다. 그리고 위젯을 레이아웃에 추가 해 줍니다.
위젯과 레이아웃은 한쌍으로 생각하시면 됩니다. 위젯은 기능을 담당 하고 레이아웃은 틀을 담당합니다.
self.mainTab = QTabWidget() # 탭 위젯 생성
self.mainLayout.addWidget(self.mainTab) # 메인 레이아웃에 텝 위젯 추가
이제 탭에 추가할 위젯 2개와 레이아웃 2개를 생성 및 연결 합니다. 이것 역시도 위젯과 레이아웃은 한쌍입니다.
self.addWidget = QWidget() # 탭에 추가할 위젯 생성
self.addLayout = QVBoxLayout(self.addWidget) # 탭에 추가할 래이아웃 생성 및 위젯 연결
self.addWidget1 = QWidget() # 탭에 추가할 위젯 생성
self.addLayout1 = QVBoxLayout(self.addWidget1) # 탭에 추가할 래이아웃 생성 및 위젯 연결
마지막으로 탭에 생성한 위젯을 추가해 줍니다.
self.mainTab.addTab(self.addWidget, 'ADD TAB 1') # 탭에 추가
self.mainTab.addTab(self.addWidget1, 'ADD TAB 2') # 탭에 추가
ADD TAB 1, ADD TAB 2 두개의 탭이 추가되었습니다.