파이썬이 제일 쉬워

[Python] 개쉽고 간지나는 customtkinter 써보기 본문

Python

[Python] 개쉽고 간지나는 customtkinter 써보기

HighBright 2024. 6. 12. 17:50

tkinter는 분명 쉽고 간단하게 GUI를 구성할 수 있다는 게 장점이지만,

한 가지 매우 큰 중대사항이 이쁘게 만드는 게 존나 어렵다는 거다.

PyQt는 그래도 Designer가 있어서 내 맘대로 만드는게 비교적 쉬운데,

tkinter는 그딴거 없고 걍 텍스트로 만들어야 함.

 

그래서 등장한 Customtkinter (꺼-스텀 티킨-터)

기존 tkinter의 개 그지같은 기본 디자인을 깔@롱하고 쌈@뽕하게 바꿔준다.

문법이 더 어려운 것도 아니고 걍 기존 tkinter 문법을 거의 그대로 사용할 수 있다. (물론, 조금 기능이 딸리는 게 몇개 있긴함)

그래도!!!! 그 잣같은 하얀박스를 탈피할 수 있다니 얼마나 아름다운가?

 

https://customtkinter.tomschimansky.com/documentation/

 

Documentation Introduction | CustomTkinter

This is the official CustomTkinter documentation, where you can find detailed information about the widgets, windows, customization and scaling.

customtkinter.tomschimansky.com

 

심지어 위키도 어느정도 잘 되어있어서 편하게 사용할 수 있다. (예제도 많음)

 

이제 좀 살펴보자. customtkinter에서 가장 맘에드는 부분은 역시 테마 설정기능이다.

기본테마도 여러개가 존재하고,

css처럼 커스텀 테마도 구성이 가능하다.

 

기존 tkinter와 달리 좀 더 상세한 색상 설정이 가능한데,

예제로 버튼(CTkButton)의 경우 무려 6개의 색상을 지정할 수 있다.

bg_color(배경), border_color(테두리), fg_color(버튼), hover_color(마우스 올렸을 때), text_color(글자 색), text_color_disabled(버튼 비활성화시 글자색)

 

customtkinter.set_default_color_theme("dark-blue")
customtkinter.set_appearance_mode("System")

 

 

그리고 기본 테마도 요렇게 blue, green, dark-blue로 3가지 테마가 있다. (근데 dark-blue와 blue는 뭔 차이임?)

밑은 세가지 테마의 적용 모습이다.

 

blue / white
green / white

 

dark-blue / dark

 

가장 괜찮은건 dark-blue에 dark인듯?

무튼 놀라운 것은 예제의 모든 것들이 아무것도 더하지 않은 디폴트 상태의 유닛들이라는 것이다.

뭐 엄청나게 세련되지는 않았지만, 위젯 꾸미는데 쓰는 시간을 대폭 절약할 수 있다.

 

그리고 아까 말했듯 편한 것은

# dark-blue.json

{
  "CTk": {
    "fg_color": ["gray95", "gray10"]
  },
  "CTkToplevel": {
    "fg_color": ["gray95", "gray10"]
  },
  "CTkFrame": {
    "corner_radius": 6,
    "border_width": 0,
    "fg_color": ["gray90", "gray13"],
    "top_fg_color": ["gray85", "gray16"],
    "border_color": ["gray65", "gray28"]
  }, 
  
 ......

요 파일을 편집하면 나만의 테마도 손쉽게 만들 수 있다. (색상 HEX 코드도 사용 가능)

 

난 까만걸 좋아해서 까만걸로 가볍게 만들어봤다.

 

 

 

뭐 요런식으로 가볍게 firebase와 연동해서 로그인 / 채팅 / 게시판 / 파일 암복호화 등의 기능을 만들어 봤는데,

여기서 내가 바꾼건 버튼 색깔과 배경 색만 테마에서 고쳐준거 빼면 없다.

소개는 이쯤 끝내고, 다음에는 customtkinter의 위젯들을 가볍게 알아보도록 하겠다.

Comments