Предоставление возможности динамического выбора цвета

predostavlenie vozmozhnosti dinamicheskogo vybora cveta Экскурсия по tkinter, часть 1

Стандартный диалог выбора цвета — это не украшение ради украшения. Сценарии могут передавать возвращаемую этим диалогом шестнадцатеричную строку цветов в уже знакомые нам параметры bg и fg настройки цветов виджетов. То есть параметры bg и fg принимают имя цвета (например, blue) и шестнадцатеричные строки со значениями насыщенности цветов RGB, возвращаемые функцией askcolor, которые начинаются с # (например, #8080ff из последней строки вывода в предыдущем разделе).

Это добавляет новое измерение в модификацию графических интерфейсов на базе tkinter: вместо того чтобы жестко определять значения цветов в создаваемых интерфейсах, можно создать кнопку, выводящую диалог выбора цвета, с помощью которой пользователи смогут осуществлять настройку цветов на лету. Нужно просто передать строку цвета методу config в обработчиках событий, как показано в примере 8.11.

Пример 8.11. PP4E\Gui\Tour\setcolor.py

from tkinter import *

from tkinter.colorchooser import askcolor

def setBgColor():

(triple, hexstr) = askcolor() if hexstr:

print(hexstr)

push.config(bg=hexstr)

root = Tk()

push = Button(root, text=’Set Background Color’, command=setBgColor) push.config(height=3, font=(‘times’, 20, ‘bold’)) push.pack(expand=YES, fill=BOTH) root.mainloop()

Этот сценарий создает окно, изображенное на рис. 8.16 (фон его кнопки зеленоватый, и вам придется поверить мне на слово). Нажатие кнопки выводит диалог выбора цвета, который мы видели выше. Цвет, выбранный в этом окне, становится цветом фона этой кнопки после нажатия кнопки OK в диалоге.

Рис. 8.16. Главное окно setcolor

 

Строки со значениями цвета также выводятся в поток stdout (окно консоли). Запустите этот сценарий на своем компьютере и поэкспериментируйте с возможными настройками цветов:

C:\\PP4E\Gui\Tour> python setcolor.py

#0080c0

#408080

#77d5df

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий