Python/PyQt

[Python/파이썬] PyQt5 Combo Box 사용하기

CODE.J 2024. 9. 22. 21:40
반응형

 

 

*pyqt5 UI 쉽게 적용하기를 기준으로 글을 작성하고 있습니다.

https://marketward.tistory.com/10

 

[Python/파이썬] PyQt5, PyQt5-Tools로 쉬운 GUI 만들기

파이썬에서는 기본적으로 tkinter 이라는 GUI 모듈을 제공하고 있습니다.하지만, GUI를 그리는 방법이 일일이 스크립트를 작성하는 형태여서 개인적으로 사용에 불편함과 제약이 있다고 생각했습

marketward.tistory.com

 

PyQt5의 Combo Box 기본 사용 입니다.

 

1. Combo Box 위젯을 추가 합니다. 오브젝트명은 "comboBox"으로 설정 했습니다.

objectName의 값을 py 스크립트에서 사용합니다.

 

2. "comboBox.addItem(i)"를 통해 Combo Box에 "combo_box_list"의 값을 추가 합니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

# pyqt5의 GUI 기본 실행폼은 https://marketward.tistory.com/10 을 참고 해주세요.
form_class = uic.loadUiType("./Combo_box.ui")[0]

#Combo_box에 넣을 목록을 만들기
combo_box_list = ["Apple","Banana","Bluebarry"]

#UI 그리기 시작
class MyWindow(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        #for 문을 통해 comboBox 오브젝트에 combo_box_list의 값을 추가
        for i in combo_box_list:
            self.comboBox.addItem(i)

#UI 그리기 완료
if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

 

3. py 스크립트를 실행 합니다.

"combo_box_list" 값이 comboBox에 입력 됨

 

Combox에 값을 추가하는 기본적인 방법을 확인 했습니다.

이제 이 Combox의 값을 가져와서 Text Edit 출력해보겠습니다.

 

1. Text Edit와 Push Button 을 추가 합니다. (참고 : https://marketward.tistory.com/24)
   Text Edit의 ObjectName은 "textEdit" 이며, Push Buttond의 ObjectName 은 "pushButton" 입니다.

버튼과 위젯이 멀리 있네요...

 

2. Text Edit와 Push Button을 추가 했기에 "실행" 버튼에 대한 함수를 추가 했습니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

# pyqt5의 GUI 기본 실행폼은 https://marketward.tistory.com/10 을 참고 해주세요.
form_class = uic.loadUiType("./Combo_box.ui")[0]

#Combo_box에 넣을 목록을 만들기
combo_box_list = ["Apple","Banana","Bluebarry"]

#UI 그리기 시작
class MyWindow(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        #for 문을 통해 comboBox 오브젝트에 combo_box_list의 값을 추가
        for i in combo_box_list:
            self.comboBox.addItem(i)

        #실행 버튼인 pushButton을 누르면 실해 시킬 함수 설정
        self.pushButton.clicked.connect(self.pushButton_clicked)

    #실행 버튼이 눌려지면 실행 시킬 함수
    def pushButton_clicked(self):
        #comBox에 있는 값을 comboBox_value로 저장 합니다.
        comboBox_value = self.comboBox.currentText()
        #textedit에 comboBox_value로 저장한 값을 출력 합니다.
        self.textEdit.setText(comboBox_value)
        
#UI 그리기 완료
if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

 

3. 동작 결과 입니다.

 

 

Combox 박스는 사용자가 "틀린 값"을 입력할 가능성을 효과적으로 줄일 수 있다고 생각해서 개인적으로 자주 사용하는 위젯 입니다.

사용자의 틀린 값 입력으로 고생하시는 분들께 도움이 되었으면 좋겠습니다. :)

반응형