Tkinter Color Chooser

2024. 3. 21. 19:52GUI/tkinter

요약 : 이 튜토리얼에서는 tkinter.colorchooser 모듈의 askcolor() 함수를 사용하여 색상 선택기 대화 상자를 표시하는 방법을 배웁니다.

Tkinter 색상 선택기 대화 상자 소개

기본 색상 선택기 대화 상자를 표시하려면 tkinter.colorchooser모듈을 사용합니다.

먼저 tkinter.colorchooser 모듈에서 askcolor() 함수를 가져옵니다.

from tkinter.colorchooser import askcolor

둘째, 색상 선택기 대화 상자를 표시하는 askcolor() 함수를 호출합니다.

askcolor(color=None, **options)

색상을 선택하면 askcolor() 함수는 선택한 색상을 나타내는 두 개의 값이 포함된 튜플을 반환합니다.

  • 첫 번째 값은 RGB 표현입니다.
  • 두 번째 값은 16진수 표현입니다.

예를 들어:

((255.99609375, 0.0, 255.99609375), '#ff00ff')

색상 선택기 대화 상자에서 색상을 선택하지 않으면 askcolor() 함수는 None를 반환합니다.

Tkinter 색상 선택기 예

다음 프로그램은 색상 선택기 대화 상자를 사용하는 방법을 보여줍니다. 루트 창의 배경이 선택한 색상으로 변경됩니다.

In [ ]:
import tkinter as tk
from tkinter import ttk
from tkinter.colorchooser import askcolor


root = tk.Tk()
root.title('Tkinter Color Chooser')
root.geometry('300x150')


def change_color():
    colors = askcolor(title="Tkinter Color Chooser")
    root.configure(bg=colors[1])


ttk.Button(
    root,
    text='Select a Color',
    command=change_color).pack(expand=True)


root.mainloop()

 

 

  • 사용자의 OS에 따라 나타나는 그림이 다릅니다.

동작 방식.

먼저 tkinter 및 colorchooser를 가져오기 합니다.

import tkinter as tk
from tkinter import ttk
from tkinter.colorchooser import askcolor

둘째, root 창을 만듭니다.

root = tk.Tk()
root.title('Tkinter Color Chooser')
root.geometry('300x150')

셋째, 'Select a Color' 버튼을 클릭할 때 실행될 함수를 정의합니다.

def change_color():
     colors = askcolor(title="Tkinter Color Chooser")
     root.configure(bg=colors[1])

넷째, 버튼을 만들고 해당 명령 옵션에 change_color() 함수를 할당합니다.

ttk.Button(
     root,
     text='Select a Color',
     command=change_color).pack(expand=True)

마지막으로 루트 창의 mainloop() 메서드를 실행합니다.

root.mainloop()

요약

  • 색상 선택기 대화 상자를 표시하려면 tkinter.colorchooser 모듈의 askcolor() 함수를 사용하십시오.
  • askcolor() 함수는 선택한 색상의 튜플 또는 None을 반환합니다.

'GUI > tkinter' 카테고리의 다른 글

Tkinter Menu  (0) 2024.03.23
Tkinter Open File Dialog  (0) 2024.03.22
Tkinter askretrycancel  (0) 2024.03.20
Tkinter askokcancel  (0) 2024.03.19
Tkinter askyesno  (0) 2024.03.18