개요
QComboBox
와 QLineEdit
을 사용하여 간단한 동적 UI를 구현해보려고 한다.
코드 구현
QComboBox
의 currentIndexChanged
시그널을 사용하여 선택된 항목에 따라 QLineEdit
의 hide()
와 show()
메소드를 호출해본다.
from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QComboBox, QLineEdit, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox와 QLineEdit 예제")
# 메인 위젯 및 레이아웃 설정
main_widget = QWidget()
self.setCentralWidget(main_widget)
layout = QVBoxLayout(main_widget)
# QComboBox 생성 및 항목 추가
self.combo_box = QComboBox()
self.combo_box.addItems(["카테고리 1", "카테고리 2", "카테고리 3"])
layout.addWidget(self.combo_box)
# QLineEdit 생성 (초기에는 숨김 상태)
self.line_edit = QLineEdit()
self.line_edit.setPlaceholderText("입력하세요")
self.line_edit.hide() # 숨김 처리
layout.addWidget(self.line_edit)
# 시그널 연결
self.combo_box.currentIndexChanged.connect(self.update_visibility)
def update_visibility(self, index):
# 특정 카테고리 선택 시 QLineEdit 보이기/숨기기
if self.combo_box.currentText() == "카테고리 2":
self.line_edit.show()
else:
self.line_edit.hide()
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec()