다이얼로그 창에 탭을 추가하는 방법입니다.
결과 화면 :
소스 코드 :
1. QDialog를 상속받은 다이얼로그 클래스를 만들고, QTabWidget에 addTab()을 해서 각 탭을 추가합니다.
# TabWidget.py
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QTabWidget, \
QVBoxLayout, QScrollArea, QDialog, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
class TabDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
self.setWindowTitle("Tab Dialog")
# Tab widget
self.tabWidget = QTabWidget(self)
self.tabWidget.addTab(TabWidgetA(), "tab1") # 탭1 추가 - 여기 적힌 내용이 탭 제목으로 보여짐
self.tabWidget.addTab(TabWidgetB(), "tab2") # 탭2 추가 - 여기 적힌 내용이 탭 제목으로 보여짐
self.mainLayout = QVBoxLayout(self)
self.mainLayout.addWidget(self.tabWidget)
self.setLayout(self.mainLayout)
self.resize(600,400)
2. 추가되는 각 탭에 들어가는 내용은 QWidget을 상속받은 클래스로 만들어 줍니다.
# TabWidget.py
class TabWidgetA(QWidget):
def __init__(self):
QWidget.__init__(self)
# Do Something here...
class TabWidgetB(QWidget):
def __init__(self):
QWidget.__init__(self)
# Do Something here...
3. 메인에서 TabDialog를 실행합니다.
# main.py
def start():
app = QApplication(sys.argv)
tabDialog = TabDialog()
tabDialog.show()
sys.exit(app.exec_())
if __name__ == '__main__':
import sys
start()
4. 아래는 전체 소스코드 입니다.
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QTabWidget, \
QVBoxLayout, QScrollArea, QDialog, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
class TabDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
self.setWindowTitle("Tab Dialog")
# Tab widget
self.tabWidget = QTabWidget(self)
self.tabWidget.addTab(TabWidgetA(), "tab1") # 탭1 추가 - 여기 적힌 내용이 탭 제목으로 보여짐
self.tabWidget.addTab(TabWidgetB(), "tab2") # 탭2 추가 - 여기 적힌 내용이 탭 제목으로 보여짐
self.mainLayout = QVBoxLayout(self)
self.mainLayout.addWidget(self.tabWidget)
self.setLayout(self.mainLayout)
self.resize(600,400)
class TabWidgetA(QWidget):
def __init__(self):
QWidget.__init__(self)
# Do Something here...
class TabWidgetB(QWidget):
def __init__(self):
QWidget.__init__(self)
# Do Something here...
def start():
app = QApplication(sys.argv)
tabDialog = TabDialog()
tabDialog.show()
sys.exit(app.exec_())
if __name__ == '__main__':
import sys
start()
다음 편에서는, 탭 위젯에
1. 스크롤 영역에 그림을 넣은 탭 (QScrollArea, QPixmap 사용)
2. csv 파일의 데이터를 읽어 테이블 형태로 보여주는 탭 (QTableWidget)
을 추가해 보도록 하겠습니다.
'개발 > Qt' 카테고리의 다른 글
[PyQt] StyleSheet 사용해서 QComboBox 색상 변경 (0) | 2021.11.06 |
---|---|
[PyQt] 트리 뷰(QTreeView)에 콤보박스(QComboBox) 추가하기 (0) | 2021.11.03 |
[PyQt] QTreeView에서 각 아이템마다 다른 툴팁 설정하기 (0) | 2021.11.01 |
[PyQt] 파일에서 데이터 읽어 테이블로 보여주기(QTableWidget) (0) | 2021.10.30 |
[PyQt] 스크롤 가능한 영역(ScrollArea)에 사진 추가하기 (0) | 2021.10.28 |