본문 바로가기

프로그래밍/PyQt5 GUI

19. QComboBox

적은 공간에서 여러 옵션을 선택할 수 있게 해주는 위젯입니다. (QComboBox 공식 문서) 참고

 

19-1 예제: ex18

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QComboBox)

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.lbl = QLabel('Option1', self)
        self.lbl.move(50, 150)

        cb = QComboBox(self)
        cb.addItem('Option1')
        cb.addItem('Option2')
        cb.addItem('Option3')
        cb.addItem('Option4')
        cb.move(50, 50)

        cb.activated[str].connect(self.onActivated)

        self.setWindowTitle('QComboBox')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def onActivated(self, text):
        self.lbl.setText(text)
        self.lbl.adjustSize()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

19-2 설명

cb = QComboBox(self)
cb.addItem('Option1')
cb.addItem('Option2')
cb.addItem('Option3')
cb.addItem('Option4')
cb.move(50, 50)

QComboBox 위젯을 하나 만들고, addItem() 메서드를 이용해서 선택 가능한 4개의 옵션을 추가합니다.

cb.activated[str].connect(self.onActivated)

activated 시그널에 onActivated 슬롯을 연결합니다.

def onActivated(self, text):
    self.lbl.setText(text)
    self.lbl.adjustSize()

선택한 항목의 텍스트가 라벨에 나타나도록 하고 , adjustSize() 메서드를 이용해서 라벨의 크기를 자동으로 조절하도록 합니다.

19-3 결과

'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글

21. QProgressBar  (0) 2021.07.26
20. QLineEdit  (0) 2021.07.23
18. QRadioButton  (0) 2021.07.23
17. QCheckBox  (0) 2021.07.23
16. QLabel  (0) 2021.07.23