프로그래밍/PyQt5

[PyQt5] 체크박스를 써보자 - QCheckBox

Dibrary 2021. 8. 11. 10:02
반응형

안녕하세요, Dibrary입니다.

GUI에는 여러가지 볼 수 있는 버튼, 박스 들이 많죠.

이번에는 체크박스를 다뤄볼 겁니다.

체크박스는 여러 개 항목을 미리 입력 해두고, 그 범주 내에서 사용자가 선택할 수 있게 하는 것입니다.

 

구현할 기능 순서로는

  • 체크박스 안에 들어갈 값을 코드로 지정하고
  • 체크박스의 값을 하나 정한후에 버튼을 누르면
  • 해당 값이 다음 화면에 나타나게

할겁니다. 

선택된 값이 다음화면에 나온다는 느낌은 앞전에 제가 쓴 글을 참고하시면 되겠죠?

2021.08.09 - [프로그래밍/PyQt5] - [PyQt5]다중화면 값 전송 - MultiWindow

 

[PyQt5]다중화면 값 전송 - MultiWindow

안녕하세요, Dibrary입니다. 앞전 시간에, 다른 화면을 띄우는 것을 해 보았습니다. 2021.08.06 - [프로그래밍/PyQt5] - [PyQt5] 다중 화면을 띄워보자! - ModalWindow [PyQt5] 다중 화면을 띄워보자! - ModalWind..

dibrary.tistory.com

 

여느때와 마찬가지로 Qt Designer를 먼저 켜서, 화면 두 개를 만들어 줍니다.

하나는 체크박스를 만들꺼고, 나머지 하나는 선택된 값을 나타내는 용도입니다.

간단하죠? 두 번째 화면은 label만 위치시키고, 폰트 크기만 키워놓은 것입니다.

근데 체크박스 글자가 모두 똑같죠? 재미도 없고, 그래서 전 제가 좋아하는 과일 선택하는 것으로 변경 해 보았습니다.

 

이제 코드로 가보겠습니다.

네 기본적인 템플릿처럼 쓰는 공통부분만 먼저 구현 해 두었습니다. 

실행 해 보시면 첫 번째 화면만 나타납니다.

 

이제 첫 번째 화면에서 버튼을 누르면 체크된 박스의 글자를 가져가는 코드를 구현하겠습니다.

앞전의 다중 화면으로 글자 넘기는 것과 전혀 크게 다르지 않습니다.

이번엔 좀 색다르게 두 번째 화면에서 전달인자의 이름을 fruit로 한 번 바꿔보았습니다.

 

코드를 살펴보겠습니다.

# if self.checkBox.isChecked( )

조건문으로, 'checkBox라는 이름의 요소가 체크가 되어있다면'을 확인하는 겁니다. 

체크가 되어 있으면 아래의 문장이 실행 되겠죠?

# text += str(self.checkBox.text( )) + " " 

이 코드는 text에 문자열을 더하는 것입니다. 맨 마지막에 공백도 추가하구요.

checkBox의 글자는 text( )로 가져올 수 있습니다. 그냥 text만 해버리면 함수가 반환되니 주의하세요.

 

나머지 부분도 다 똑같은 겁니다.

2번째, 3번째에 체크를 해 두면, 조건문 2번째, 3번째가 실행 되는 것이고,

1번째, 3번째에 체크를 해 두면, 조건문 1번째, 3번째가 실행 되는 것입니다.

 

결과를 보겠습니다.

사과와 수박을 체크하고 버튼을 누르니 다음 화면에서 사과와 수박이 그대로 나오네요!

딸기로 해도 마찬가지입니다.

 

이상으로 체크박스 다루는 방법을 알아보았습니다.

 

체크박스는 

  • 사용자가 직접 선택을 하게 하고
  • 여러 개를 선택할 수 있게 할 때

주로 사용합니다.

728x90
반응형