В этой небольшой заметке я рассказываю про именованные цвета tkinter и показываю как с ними можно работать. Попутно вы узнаете как с помощью python можно вытащить и обработать данные из web страницы и получить список всех возможных цветов. И, наконец, мы соорудим, две простецкие программы для просмотра списка цветов. Tkinter использует именованные цвета. Поэтому для задания кода цвета можно задать rgb код цвета или мы можем написать название. Так вместо '#C0C0C0' можем написать 'silver', вместо '#800000' - 'maroon' Всё это замечательно, но в этой бочке мёда есть ложка дёгтя. Если вы знаете имена цветов, то вы получите правильный результат. А получить список доступных цветов из программы практически невозможно. Вызов тулкита, возвращающий список имен, видимо, отсутствует. Тем не менее, таблицу-справочник доступных имён можно найти в системной документации на tcl/tk,который лежит здесь:http://www.tcl.tk/man/tcl8.6.13/TkCmd/colors.htm . Просмотр системной документации наводит нас на мысль, что в основе лежит список цветов системы X11. Кроме того, абсолютной точности тут может и не быть - этот список изменялся со временем, так что возможна небольшая разница между разными версиями этого списка. Поэтому мы просто обращаемся к последней версии документации. Отметим, что некоторые цвета встречаются дважды, - например, "antique white" и "AntiqueWhite" представляют один и тот же цвет. Сделано это для удобства и упрощения кодирования программ. Я написал небольшое приложение gettkcolors.py, которое обращается к сайту с документацией, вытаскивает таблицу именованных цветов из системной документации и сохраняет все системные цвета в два локальных файла следующим образом: CSVFILENAME = PROJECT_PATH / 'tkcolors.csv' PYFILENAME = PROJECT_PATH / 'tknamedcolors.py' Программа использует модуль request, забирает страницу в буфер и передаёт её в в процедуру разбора и получения списка цветов. Вытащить цвета из страницы можно с помощью BeautifulSoup4. Это очень популярная библиотека для анализа страниц и извлечения данных из hmtl и xml. С её помощью мы можем вытаскивать данные из html таблиц в том числе. С помощью модулей requests и BeatifulSoup4, мы получаем универсальный механизм для вытаскивания данных из веб страниц для наших приложений. Собственно сам разбор страницы занял 20 строк, а вся программа около 150. Реализовывать на python подобные алгоритмы очень удобно. Таким способом мы получили внешний файл tknamedcolors.py, который содержит tuple со всеми именами цветов: Быстренько делаем программу для визуализации полученного кортежа. И неожиданно обнаруживаем небольшое препятствие. При первоначальном запуске оказалось, что в системной документации есть две опечатки в именах цветов. При попытке установить цвета 'agua' и 'crymson' мы получаем ошибку. Вносим в нашу программу загрузки цветов исправление : Теперь мы можем закончить простейший просмотрщик имен цветов ( showmetkcolors.py ). Если внимательно посмотреть на таблицу, то можно обнаружить, что некоторые цвета встречаются дважды. Например, все оттенки серого. Сделать это можно с помощью вызова winfo_rgb(colorname) экземпляра toplevel. Теперь мы можем соорудить приложение, которое показывает все имена цветов и коды в виде дерева-showmecolorstree.py. С помощью pygubu-designer (см. про pygubu-designer ссылку в конце статьи) мы делаем несложный интерфейс. И используем небольшой трюк для изображения цветных прямоугольников в качестве элементов treeview. Для отображения мы загружаем монохромное изображение прозрачного прямоугольника, и устанавливаем для него цвет фона: Вот мы и получили программу из 82 строк включая пробелы. Теперь вы можете просматривать доступные имена для стандартных цветов и соответствующие им коды. Можно скачать исходный код примеров этой статьи Моя заметка про pygubu-designer  BeautifulSoup4 Страница tcl.tk с кодами цветов Исходный код примеров этой статьи IT инженер