프로그래밍/PyQt5

[PyQt5] 선택하는 또 다른 방법. 콤보박스 사용하기 - QComboBox

Dibrary 2021. 8. 16. 10:06
반응형

안녕하세요, Dibrary입니다.

선택하는 방법으로 checkBox, radioButton을 소개해 드렸었는데, 이번에는 콤보박스라는 것을 다뤄볼 것입니다.

 

콤보박스하니까 뭔가 영화관이 떠오르지 않나요?

네, 하나의 콤보박스에는 여러 음식이 구성되어 있죠.

이 콤보박스도 미리 여러 개의 요소를 담아둘 수 있습니다.

사용자가 선택만 하면 되는 것이죠.

 

Qt Designer를 먼저 열고 화면을 구성합니다.

아주 심플하죠? 이번에는 2번째 화면을 만들지 않을 겁니다.

제가 구현하려는 것은 순서대로

  1. 콤보박스를 선택하고 
  2. 버튼을 누르면
  3. 아래에 선택한 콤보박스의 글자가 뜨는 것

입니다.

 

코드를 구현하겠습니다. 제일 먼저 기본 템플릿을 가져와서 구성합니다.

언제 봐도 똑같죠? 클래스 이름이나 ui파일의 이름만 바뀌고 나머지는 항상 똑같습니다.

 

가장 중요한 부분은 comboBox에 요소를 넣는 것입니다.

크게 2가지로 가능합니다. 코드로 넣는 게 가능하고, Qt Designer에서 넣어 놓는게 가능합니다.

 

먼저 Qt Designer에서 넣어보겠습니다.

Qt Designer에서 comboBox를 더블클릭하면 아래와 같은 화면이 나옵니다.

왼쪽의 + 버튼을 눌러서 추가 해주면 됩니다.

저는 과일류를 추가해 보았습니다.

이렇게 추가 하고 난 후에 '확인'버튼을 누르고 다시 Qt Designer를 보면

뭔가 바뀌었나요? comboBox에 글자가 나타나죠? 

위의 템플릿 코드로 실행 하더라도 콤보박스에 글자가 나타납니다.

 

두 번째 방법인 코드상에서 넣어보겠습니다.

보시면 comboBox객체에 addItem을 이용해서 직접 글자를 '추가'하고 있습니다.

 

화면을 띄워 보겠습니다.

아? 원래 Qt Designer에서 띄운 글자에 코드로 구현한 내용이 '추가'되어서 나타났네요.

코드로 구현한 글자만 나타내려면 Qt Designer에서 미리 넣어놓은 내용은 지워주시면 됩니다.

 

네 이제 이 콤보박스에서 선택된 값을 버튼을 눌러서 아래에 띄우는 코드를 작성하겠습니다.

버튼을 누르면 실행되는 showText에서 comboBox의 현재값 즉, currentText( )를 이용해서 현재값을 가져오고 그 값을 lineEdit에 띄우고 있네요.

 

과연 그렇게 나오는지 결과를 보겠습니다.

네 선택한 것의 글자를 아래로 옮겨줍니다.

 

한 가지 더 기능을 추가 해 본다면, 콤보박스에 들어가는 내용의 순서와 관계 없이, 
해당 화면이 나타날 때 제일 먼저 나오는 글자를 설정할 수 있습니다.

박스친 부분을 잘 보시면, setCurrentText라는 내용에서 기능이 추론 될겁니다.

현재 텍스트를 Melon으로 설정한다는 의미죠. 

실행 하게 되면

이렇게 Melon이 제일 먼저 나타납니다.

 

이러한 콤보박스 역시 설문이나 각종 조사를 할 때 많이 나타나는 GUI 기능입니다.

728x90
반응형