[PyQt5] QCombo Box를 이용하여 지정된 데이터 가져오기 (How to use QCombo Box?) [11]

2021. 7. 26. 23:46GUI Programming/PyQT5 (GUI Programming)

반응형

[ PyQt5 ]

이번 포스팅은 QComboBox를 이용하여 데이터를 직접 선택하여 데이터를 읽어오는 방법에 대해서 포스팅을 하겠습니다

 

QComboBox고정적인 데이터를 선택해야 할때 많이 사용이 됩니다.

예를 들어, 정보 입력란의 성별, 출생 등과 같이 있습니다.


QComboBox를 사용하기전 메인윈도우를 구성해줍니다.

저는 QComboBox에서 선택할수 있는 데이터를 선언해주는 2가지 방법에 대해 설명을 해드리겠습니다

 

이번 포스팅에도 직관적인 결과를 위해 LabelButton을 이용 하였습니다.

def setupUi(self):
        self.setWindowTitle('ComboBox')
        self.resize(500, 200)

        # 리스트 사용하지 않고 따로 데이터를 추가한 ComboBox
        self.combo_one = QComboBox(self)
        self.combo_one.addItem('네이버')
        self.combo_one.addItem('카카오')
        self.combo_one.addItem('라인')
        self.combo_one.addItem('쿠팡')
        self.combo_one.addItem('배달의민족')
        self.combo_one.move(50,50)

        self.one_label = QLabel(self)
        self.one_label.setGeometry(350,55,100,25)
        self.one_label.setText('Hello One')

        self.one_button = QPushButton(self)
        self.one_button.move(200, 50)
        self.one_button.setText('Get One Text')
        self.one_button.clicked.connect(lambda:self.button_event(True))

        # 리스트 사용하여 데이터를 추가한 ComboBox
        self.combo_list = QComboBox(self)
        self.combo_list.addItems(['네이버','카카오','라인','쿠팡','배달의민족'])
        self.combo_list.move(50,100)

        self.list_label = QLabel(self)
        self.list_label.setGeometry(350,100,100,25)
        self.list_label.setText('Hello List')

        self.list_button = QPushButton(self)
        self.list_button.move(200, 100)
        self.list_button.setText('Get List Text')
        self.list_button.clicked.connect(lambda:self.button_event(False))

        self.show()

1번째 방법은 데이터를 하나씩 데이터를 선언하는 방법이고,

2번재 방법은 데이터를 리스트를 이용해 한번에 선언하는 방법이 있습니다.

하나씩 선언할 때 에는 .addItem(str)

리스트로 선언할 때 에는 .addItems(list)


아래는 Button 클릭 이벤트 함수 입니다.

def button_event(self,bool):
        if bool :
            one_text = self.combo_one.currentText()
            self.one_label.setText('One : '+one_text)
        else :
            list_text = self.combo_list.currentText()
            self.list_label.setText('List : '+list_text)

[ 결과 ]

이상 포스팅을 마치도록 하겠습니다


[ 완성된 코드 ]

https://github.com/Mr-DooSun/pyqt5-gui/blob/master/ex9_combo_box/ComboBox.py

 

GitHub - Mr-DooSun/pyqt5-gui

Contribute to Mr-DooSun/pyqt5-gui development by creating an account on GitHub.

github.com

 

반응형