Qt/PyQt5 강좌
pyQt5 다중 탭에 텍스트 에디터가 포함된 예제
webnautes
2024. 8. 8. 22:47
반응형
다중 탭마다 텍스트 에디터가 포함된 pyQt5 예제코드입니다.
2024. 8. 8 최초작성
실행시키면 탭이 보입니다. 아래쪽에 보이는 버튼을 클릭하면
탭별로 추가되있는 텍스트 에디터에 텍스트가 추가됩니다.
전체 코드입니다.
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QTabWidget, QTextEdit, QPushButton class MultiTabTextEditor(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("다중 탭 텍스트 에디터") self.setGeometry(100, 100, 800, 600) # 중앙 위젯 생성 central_widget = QWidget(self) self.setCentralWidget(central_widget) # 수직 레이아웃 생성 layout = QVBoxLayout() # 탭 위젯 생성 self.tab_widget = QTabWidget() # 빈 탭 추가 self.add_tab("일기") self.add_tab("쇼핑 목록") self.add_tab("할 일") # 데이터 추가 버튼 self.add_data_button = QPushButton("데이터 추가") self.add_data_button.clicked.connect(self.add_data_to_tabs) # 레이아웃에 위젯 추가 layout.addWidget(self.tab_widget) layout.addWidget(self.add_data_button) # 중앙 위젯에 레이아웃 설정 central_widget.setLayout(layout) def add_tab(self, name): # 새 텍스트 편집 위젯 생성 text_edit = QTextEdit() # 탭 위젯에 새 탭 추가 self.tab_widget.addTab(text_edit, name) def add_data_to_tabs(self): # 각 탭에 데이터 추가 self.set_tab_content(0, "오늘은 날씨가 좋아서 공원에 다녀왔습니다. 꽃들이 예쁘게 피어있었고, 산책하는 사람들도 많았습니다.") self.set_tab_content(1, "1. 우유\n2. 빵\n3. 계란\n4. 사과\n5. 치즈") self.set_tab_content(2, "- 보고서 작성하기\n- 운동 30분\n- 친구와 저녁 약속\n- 책 읽기") # 버튼 비활성화 self.add_data_button.setEnabled(False) def set_tab_content(self, index, content): text_edit = self.tab_widget.widget(index) if isinstance(text_edit, QTextEdit): text_edit.setPlainText(content) if __name__ == '__main__': app = QApplication(sys.argv) window = MultiTabTextEditor() window.show() sys.exit(app.exec_()) |
반응형