How to create a color choosing dialog in tkinter python

How to create a color choosing dialog in tkinter python:

Python tkinter module provides an easy way to create one color choosing dialog. We can use its tkinter.colorchooser module. This post will show you how to create a color chooser dialog and how to read the color chosen by the user.

tkinter.colorchooser:

tkinter.colorchooser module provides a method called askColor that can be used to create a color choosing dialog. This method is defined as below:

tkinter.colorchooser.askcolor(color=None, **options)

This method creates a color chooser window, waits for the user to make a selection and once a selection is made, it returns that value.

It can return the selected color value or None.

If the argument color is defined, it will show the color chooser with that color.

Note that the color chooser window will look different on different operating systems.

Example of tkinter.colorchooser:

Let’s tryt his with an example:

from tkinter import *
from tkinter import colorchooser


def get_color():
    selected_color = colorchooser.askcolor(title="Select a color")
    print(selected_color)


window = Tk()
button = Button(window, text="Click me",
                command=get_color)
button.pack()
window.geometry("500x500")
window.mainloop()

Here,

  • We created one tkinter window.
  • We created one button with a text. On clicking this button, it will call the get_color method.
  • The button is added to the windows and it will open a 500x500 window.

If you run this program, it will open one window as like below: tkinter window

If you click on this button: tkinter color chooser (it is on Mac)

Example to set a default color:

We can set a default color to this color chooser window. For that, we need to pass the color parameter:

selected_color = colorchooser.askcolor(color="#ffffff", title="Select a color")

Output:

If you run this program, it will print the selected color on the console as like below:

((255.99609375, 65.25390625, 60.234375), '#ff413c')

You might also like: