☘️

004 QComboBox (옵션 선택 창)

1. 코드

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QComboBox import sys class 옵션선택창(QWidget): def __init__(self): super().__init__() self.UI초기화() def UI초기화(self): self.label = QLabel('옵션을 선택해주세요.', self) self.label.move(20, 80) self.label.setFixedSize(300,20) self.cbox = QComboBox(self) self.cbox.addItem('Option 1') self.cbox.addItem('Option 2') self.cbox.addItem('Option 3') self.cbox.addItem('Option 4') self.cbox.move(40,40) self.cbox.activated[str].connect(self.clicked) self.setWindowTitle('QComboBox') self.setGeometry(300, 300, 300, 100) self.show() def clicked(self): index = str(self.cbox.currentIndex()) text = str(self.cbox.currentText()) self.label.setText("아이템의 " + index + "번째에 있는 "+ text + "를 선택했습니다.") self.adjustSize() 프로그램무한반복 = QApplication(sys.argv) 실행인스턴스 = 옵션선택창() 프로그램무한반복.exec_()

2. 상세 내용

  • ComboBox에 요소 추가시 addItem 매서드를 사용합니다. 안에 들어가는 값은 문자열만 가능합니다.
    • self.cbox = QComboBox(self) self.cbox.addItem('Option 1') self.cbox.addItem('Option 2') self.cbox.addItem('Option 3') self.cbox.addItem('Option 4')
       
 
  • cbox(박스)의 속성이 눌렸을 때(activated[str]) 정의된 함수(clicked)가 실행되어 이벤트 처리를 하게 됩니다. clicked는 우리가 정의할 함수입니다.
    • self.cbox.activated[str].connect(self.clicked)
 
  • cbox와 연결된 함수 clicked를 구현합니다.
    • def clicked(self): index = str(self.cbox.currentIndex()) text = str(self.cbox.currentText()) self.label.setText("아이템의 " + index + "번째에 있는 " + text + "를 선택했습니다.") self.adjustSize()
      1. activated[str]에 의해 text인자가 추가로 넘겨오고(즉, 누른 옵션의 문자열)
      1. currentIndex()를 활용해 인덱스를 구하고
      1. currentText()를 활용해 현재 누른 텍스트의 문자열을 가져와 라벨에 업데이트
      1. adjustSize()은 라벨의 크기를 자동 조절 단, 이 경우 창크기도 같이 조절이 될 수 있음

3. 실행 결과

프로그램 실행 시프로그램 실행 시
프로그램 실행 시
옵션 선택시옵션 선택시
옵션 선택시
옵션 선택시 창 크기가 커진것을 볼 수 있으며 해당 이벤트를 처리하여 라벨에 보여줍니다. 주의할 점은 index가 0부터 시작한다는 것입니다.