본문 바로가기
『 Python 』/Python GUI

[4] python GUI 콤보 박스 위젯 + 체크 버튼 만들기

by Play IT 2019. 9. 4.
반응형

콤보박스란

초기 기본값을 가질 수 있는 다운 콤보 박스 상자를 추가해 GUI를 개선하게 하며 사용자의 선택을 제한하거나 사용자 입력을 원하는 대로 허용하게 하는 것이다.

 

100옆에 내리기를 누르면 입력한 숫자가 뜰것이다.

콤보박스 사용법이다.

하지만 100을 수정할수 있기에

우리는 이것을 막아줘야 한다 .

그러기에

number_chosen= ttk.Combobox(win,width=12, textvariable=number, state='readonly') 

리드 온리 라는 문구를 넣어주면 더이상 콤보박스가 수정이 되지 않는다.

 

그리고 언제나 그랬듯이 StringVar()을 활용한 변수는 name.get 즉 .get()으로 가져올수 있다.

 

그러기에 숫자도 Hello 옆에 띄우는 연습을 해보길 바란다.

 

두번째로는 채크박스를 만들것이다.

 

음.. 여기까지 재 설명을 듣고 하셨다면

이건 혼자 해석해 보시기 바랍니다.

먼저 해석하시고 아래 확인해주세요.

 

 

체크 박스는 위에서 텍스트 박스와 버튼에서 문자형String을 수정했다면

여기서는 0 과 1 같은 True or False 이기에

IntVar()을 사용해서 합니다.

 

chVarUn 이나 chVarEn같은 변수는 마음대로 자신이 원하는 대로 바꿔도 됩니다.

 

여기서도 state="disabled" 를 사용해서 상태를 변경하지 못하게 설정할수 있습니다.

비슷한 것으로는 버튼비활성화가 있습니다.

 

이제 체크박스를 만들어 봤으니 그에 해당하는 이벤트를 만들어 봅시다.

 

일단 radiobutton을 사용하기전에

체크박스를 이용한 것을 해봅시다.

바뀐것이 보이시나요?

네 check3에 command 란이 들어가고 def CheckCall이라는 함수를 정의해서 조건문 함수를 적었습니다

지금까지 해왔던 것을 보면 이제 서서히 보이기 시작할 것입니다.

 

체크를 해제하면 0을 의미하며 체크를 하면 1을 의미합니다.

 

확인하는 방법은 라벨을 사용해서 하면 됩니다. 

어렵다고 생각드시면 적어드리겠습니다.

 

ttk.Label= (text=chVarEn.get()).grid(column=0,row=6)

 

이렇게 확인을 해보시면됩니다.

 

이제 Radiobutton을 해봅시다.

네 

체크박스 아래에 원형박스가 생겼습니다. 이것을 radiobutton이라 합니다.

코드를 보시면 값을 지정해 줘야합니다.

버튼마다 재각각 다른 값들을 가지고 있을것이 보일 것입니다.

background란 해당 뭐라..해야할지는 모르겠으나

한마디로 바탕화면이라고 생각하면됩니다. 버튼의 색깔을 바꾸려면

action.configure(background = "blue")이렇게 하시면 되고

전체 창 바탕색깔은 win 이렇게 수정하시면 됩니다. 

네 보시면 Blue 부분도 다른 영역이기에 흰색이여야 합니다. 

하지만 재꺼 코드를 보시면 Blue RadioButton 영역을 보시면 코드가 적혀 있을 겁니다.

 

이제 수정해보시고 적응을 해보시기 바랍니다.

결국엔 자세히 가리켜주던 전반적으로 해석해주던 자신이 노력을 가지고 찾아보지 않고 적용해보지 않으면

소용없다고 생각하고 이해를 잘못한다고 생각을 합니다.

 

물론 재 주관적인 생각일 수도  있지만

잘 이해하기 위해선 코드를 전반적으로 수정해서 자신것으로 만들어 보시기 바랍니다.

반응형

댓글