Создание диалогового окна выбора цвета Tkinter в Python

Диалоговое окно выбора цвета Tkinter

Для отображения собственного диалогового окна выбора цвета используйте модуль tkinter.colorchooser.

  • Сначала импортируйте функцию askcolor() из модуля tkinter.colorchooser:
from tkinter.colorchooser import askcolor
  • Во-вторых, вызовите функцию askcolor(), чтобы отобразить диалоговое окно выбора цвета:
askcolor(color=None, **options)

Если вы выбираете цвет, функция askcolor() возвращает кортеж, содержащий два значения, представляющих выбранный цвет:

  • Первое значение — это представление RGB.
  • Второе значение — шестнадцатеричное представление.

Например:

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

Если вы не выбрали ни одного цвета в диалоговом окне выбора цвета, функция askcolor() возвращает None.

Пример выбора цвета в Tkinter

Следующая программа иллюстрирует, как использовать диалог выбора цвета. Фон корневого окна изменится на выбранный цвет.

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()

Выход:

как использовать диалог выбора цвета

Как это работает.

  • Сначала импортируем tkinter и colorchooser:
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])
  • В-четвертых, создайте кнопку и назначьте функцию change_color() ее параметру команды:
ttk.Button(
    root,
    text='Select a Color',
    command=change_color).pack(expand=True)
  • Наконец, запустите метод mainloop() корневого окна:
root.mainloop()
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *