Tkinterの使い方:使用可能な色名を調べる方法(色の見本の表示サンプルスクリプト付き)

tkinterで利用可能な色名の調べ方の解説ページアイキャッチ

tkinter を使っているとさまざまな場面で “色” を指定することがあります。

例えばウィジェットの背景色を設定したり、

キャンバスウィジェットの背景色の設定
canvas = tkinter.Canvas(
	# 〜略〜
	bg="red" # 背景色の設定
)

キャンバスに描画する図形の塗りつぶし色を設定したりする際に色の指定を行うと思います。

図形の塗りつぶし色の設定
canvas.create_rectangle(
	# 〜略〜
	fill="green" # 塗りつぶし色の設定
)

この色の指定としては、カラーコードを指定することも可能ですが、"red""green" などといった「色名」を指定することも可能です。

では、tkinter で利用可能な “色名” って具体的にどんなものがあるのでしょうか?

今回は、この tkinter で利用可能な “色名” を調べる方法について解説したいと思います!

ただ、”色名” だけ分かったところで、その色名が実際に “どんな色なのか” が分からないと意味がないので、利用可能な “色名” の「色の見本」を表示するスクリプト(tkinter を利用したスクリプト)の紹介もしていきたいと思います!

利用可能な色名の調べ方

結論を言うと、Tk のドキュメントを読むことで tkinter で利用可能な色名を調べることができます。

具体的には下記のページに利用可能な “色名” が列挙されています。

https://www.tcl.tk/man/tcl8.6/TkCmd/colors.htm

上記 URL の 8.6 の部分は Tk のバージョンになりますので、自身が使用している Tk に合わせて URL を変更すると、よりあなたの環境にあった利用可能な “色名” を調べることができます。

Tk のバージョンは Python で下記を実行することで調べることが可能です。

Tkのバージョンの調べ方
import tkinter
print(tkinter.TkVersion)

上記のページにも記載されていますが、利用可能な “色名” には下記の3種類が存在します。

  1. OS 非依存
  2. MacOSX 専用
  3. Windows 専用

2. と 3. に関してはあなたが利用している OS によっては対応していない “色名” である可能性があるので注意してください。対応していない “色名” を fillbg などのウィジェット設定に指定するとエラーが発生します。

また、いきなり Tk という言葉が出てきて戸惑っている方もおられると思いますので、Tk について簡単に説明しておきます。

この Tk は、ウィジェットを作成してくれるツールキットです。

tkinter はこの Tk を Python で利用するためのラッパー(Python と Tk の繋ぎ目)みたいなもので、tkinter でウィジェットを作成するような時は、実際には tkinter から Tk が利用され、この Tk がウィジェットを作成してくれています。

tkinterとTkの関係図

つまり tkinter の本体は Tk です。なので、今回の “色名” のように、ウィジェットで設定可能なパラメータなどは tkinter ではなく Tk のドキュメントに載っていることがあります。

また、前述の通り、tkinter の本体は Tk ですので、この Tk のソースコードを読むことでより詳しく tkinter の動作を調べることも可能です。

色の見本の表示サンプルスクリプト

上記のドキュメントで調べられるのはあくまでも tkinter で利用可能な “色名” で、実際にその色名を設定した場合にどんな色になるかは分かりません。

これだとちょっと不便なので、利用可能な “色名” の色の見本を表示するアプリを tkinter で作ってみました!Tk のバージョン 8.6 の情報に基づいて作成しています。

下記がそのスクリプトになります(長いのでソースコードは非表示にしていますがクリックすると非表示されます)。

色の見本を表示するスクリプト
import tkinter

# キャンバスの高さ(幅はテキストとカラーバーの幅から自動で計算)
CANVAS_HEIGHT = 300

# カラーバー(色の見本の長方形)のサイズ
COLOR_BAR_HEIGHT = 30
COLOR_BAR_WIDTH = 400

# テキストの最大幅(ピクセル)
TEXT_WIDTH = 300

# ↓ http://www.tcl.tk/man/tcl8.6/TkCmd/colors.htm から色名だけ引用
colors = (
	'alice blue',
	'AliceBlue',
	'antique white',
	'AntiqueWhite',
	'AntiqueWhite1',
	'AntiqueWhite2',
	'AntiqueWhite3',
	'AntiqueWhite4',
	'aqua', # agua
	'aquamarine',
	'aquamarine1',
	'aquamarine2',
	'aquamarine3',
	'aquamarine4',
	'azure',
	'azure1',
	'azure2',
	'azure3',
	'azure4',
	'beige',
	'bisque',
	'bisque1',
	'bisque2',
	'bisque3',
	'bisque4',
	'black',
	'blanched almond',
	'BlanchedAlmond',
	'blue',
	'blue violet',
	'blue1',
	'blue2',
	'blue3',
	'blue4',
	'BlueViolet',
	'brown',
	'brown1',
	'brown2',
	'brown3',
	'brown4',
	'burlywood',
	'burlywood1',
	'burlywood2',
	'burlywood3',
	'burlywood4',
	'cadet blue',
	'CadetBlue',
	'CadetBlue1',
	'CadetBlue2',
	'CadetBlue3',
	'CadetBlue4',
	'chartreuse',
	'chartreuse1',
	'chartreuse2',
	'chartreuse3',
	'chartreuse4',
	'chocolate',
	'chocolate1',
	'chocolate2',
	'chocolate3',
	'chocolate4',
	'coral',
	'coral1',
	'coral2',
	'coral3',
	'coral4',
	'cornflower blue',
	'CornflowerBlue',
	'cornsilk',
	'cornsilk1',
	'cornsilk2',
	'cornsilk3',
	'cornsilk4',
	'crimson', # crymson
	'cyan',
	'cyan1',
	'cyan2',
	'cyan3',
	'cyan4',
	'dark blue',
	'dark cyan',
	'dark goldenrod',
	'dark gray',
	'dark green',
	'dark grey',
	'dark khaki',
	'dark magenta',
	'dark olive green',
	'dark orange',
	'dark orchid',
	'dark red',
	'dark salmon',
	'dark sea green',
	'dark slate blue',
	'dark slate gray',
	'dark slate grey',
	'dark turquoise',
	'dark violet',
	'DarkBlue',
	'DarkCyan',
	'DarkGoldenrod',
	'DarkGoldenrod1',
	'DarkGoldenrod2',
	'DarkGoldenrod3',
	'DarkGoldenrod4',
	'DarkGray',
	'DarkGreen',
	'DarkGrey',
	'DarkKhaki',
	'DarkMagenta',
	'DarkOliveGreen',
	'DarkOliveGreen1',
	'DarkOliveGreen2',
	'DarkOliveGreen3',
	'DarkOliveGreen4',
	'DarkOrange',
	'DarkOrange1',
	'DarkOrange2',
	'DarkOrange3',
	'DarkOrange4',
	'DarkOrchid',
	'DarkOrchid1',
	'DarkOrchid2',
	'DarkOrchid3',
	'DarkOrchid4',
	'DarkRed',
	'DarkSalmon',
	'DarkSeaGreen',
	'DarkSeaGreen1',
	'DarkSeaGreen2',
	'DarkSeaGreen3',
	'DarkSeaGreen4',
	'DarkSlateBlue',
	'DarkSlateGray',
	'DarkSlateGray1',
	'DarkSlateGray2',
	'DarkSlateGray3',
	'DarkSlateGray4',
	'DarkSlateGrey',
	'DarkTurquoise',
	'DarkViolet',
	'deep pink',
	'deep sky blue',
	'DeepPink',
	'DeepPink1',
	'DeepPink2',
	'DeepPink3',
	'DeepPink4',
	'DeepSkyBlue',
	'DeepSkyBlue1',
	'DeepSkyBlue2',
	'DeepSkyBlue3',
	'DeepSkyBlue4',
	'dim gray',
	'dim grey',
	'DimGray',
	'DimGrey',
	'dodger blue',
	'DodgerBlue',
	'DodgerBlue1',
	'DodgerBlue2',
	'DodgerBlue3',
	'DodgerBlue4',
	'firebrick',
	'firebrick1',
	'firebrick2',
	'firebrick3',
	'firebrick4',
	'floral white',
	'FloralWhite',
	'forest green',
	'ForestGreen',
	'fuchsia',
	'gainsboro',
	'ghost white',
	'GhostWhite',
	'gold',
	'gold1',
	'gold2',
	'gold3',
	'gold4',
	'goldenrod',
	'goldenrod1',
	'goldenrod2',
	'goldenrod3',
	'goldenrod4',
	'gray',
	'gray0',
	'gray1',
	'gray2',
	'gray3',
	'gray4',
	'gray5',
	'gray6',
	'gray7',
	'gray8',
	'gray9',
	'gray10',
	'gray11',
	'gray12',
	'gray13',
	'gray14',
	'gray15',
	'gray16',
	'gray17',
	'gray18',
	'gray19',
	'gray20',
	'gray21',
	'gray22',
	'gray23',
	'gray24',
	'gray25',
	'gray26',
	'gray27',
	'gray28',
	'gray29',
	'gray30',
	'gray31',
	'gray32',
	'gray33',
	'gray34',
	'gray35',
	'gray36',
	'gray37',
	'gray38',
	'gray39',
	'gray40',
	'gray41',
	'gray42',
	'gray43',
	'gray44',
	'gray45',
	'gray46',
	'gray47',
	'gray48',
	'gray49',
	'gray50',
	'gray51',
	'gray52',
	'gray53',
	'gray54',
	'gray55',
	'gray56',
	'gray57',
	'gray58',
	'gray59',
	'gray60',
	'gray61',
	'gray62',
	'gray63',
	'gray64',
	'gray65',
	'gray66',
	'gray67',
	'gray68',
	'gray69',
	'gray70',
	'gray71',
	'gray72',
	'gray73',
	'gray74',
	'gray75',
	'gray76',
	'gray77',
	'gray78',
	'gray79',
	'gray80',
	'gray81',
	'gray82',
	'gray83',
	'gray84',
	'gray85',
	'gray86',
	'gray87',
	'gray88',
	'gray89',
	'gray90',
	'gray91',
	'gray92',
	'gray93',
	'gray94',
	'gray95',
	'gray96',
	'gray97',
	'gray98',
	'gray99',
	'gray100',
	'green',
	'green yellow',
	'green1',
	'green2',
	'green3',
	'green4',
	'GreenYellow',
	'grey',
	'grey0',
	'grey1',
	'grey2',
	'grey3',
	'grey4',
	'grey5',
	'grey6',
	'grey7',
	'grey8',
	'grey9',
	'grey10',
	'grey11',
	'grey12',
	'grey13',
	'grey14',
	'grey15',
	'grey16',
	'grey17',
	'grey18',
	'grey19',
	'grey20',
	'grey21',
	'grey22',
	'grey23',
	'grey24',
	'grey25',
	'grey26',
	'grey27',
	'grey28',
	'grey29',
	'grey30',
	'grey31',
	'grey32',
	'grey33',
	'grey34',
	'grey35',
	'grey36',
	'grey37',
	'grey38',
	'grey39',
	'grey40',
	'grey41',
	'grey42',
	'grey43',
	'grey44',
	'grey45',
	'grey46',
	'grey47',
	'grey48',
	'grey49',
	'grey50',
	'grey51',
	'grey52',
	'grey53',
	'grey54',
	'grey55',
	'grey56',
	'grey57',
	'grey58',
	'grey59',
	'grey60',
	'grey61',
	'grey62',
	'grey63',
	'grey64',
	'grey65',
	'grey66',
	'grey67',
	'grey68',
	'grey69',
	'grey70',
	'grey71',
	'grey72',
	'grey73',
	'grey74',
	'grey75',
	'grey76',
	'grey77',
	'grey78',
	'grey79',
	'grey80',
	'grey81',
	'grey82',
	'grey83',
	'grey84',
	'grey85',
	'grey86',
	'grey87',
	'grey88',
	'grey89',
	'grey90',
	'grey91',
	'grey92',
	'grey93',
	'grey94',
	'grey95',
	'grey96',
	'grey97',
	'grey98',
	'grey99',
	'grey100',
	'honeydew',
	'honeydew1',
	'honeydew2',
	'honeydew3',
	'honeydew4',
	'hot pink',
	'HotPink',
	'HotPink1',
	'HotPink2',
	'HotPink3',
	'HotPink4',
	'indian red',
	'IndianRed',
	'IndianRed1',
	'IndianRed2',
	'IndianRed3',
	'IndianRed4',
	'indigo',
	'ivory',
	'ivory1',
	'ivory2',
	'ivory3',
	'ivory4',
	'khaki',
	'khaki1',
	'khaki2',
	'khaki3',
	'khaki4',
	'lavender',
	'lavender blush',
	'LavenderBlush',
	'LavenderBlush1',
	'LavenderBlush2',
	'LavenderBlush3',
	'LavenderBlush4',
	'lawn green',
	'LawnGreen',
	'lemon chiffon',
	'LemonChiffon',
	'LemonChiffon1',
	'LemonChiffon2',
	'LemonChiffon3',
	'LemonChiffon4',
	'light blue',
	'light coral',
	'light cyan',
	'light goldenrod',
	'light goldenrod yellow',
	'light gray',
	'light green',
	'light grey',
	'light pink',
	'light salmon',
	'light sea green',
	'light sky blue',
	'light slate blue',
	'light slate gray',
	'light slate grey',
	'light steel blue',
	'light yellow',
	'LightBlue',
	'LightBlue1',
	'LightBlue2',
	'LightBlue3',
	'LightBlue4',
	'LightCoral',
	'LightCyan',
	'LightCyan1',
	'LightCyan2',
	'LightCyan3',
	'LightCyan4',
	'LightGoldenrod',
	'LightGoldenrod1',
	'LightGoldenrod2',
	'LightGoldenrod3',
	'LightGoldenrod4',
	'LightGoldenrodYellow',
	'LightGray',
	'LightGreen',
	'LightGrey',
	'LightPink',
	'LightPink1',
	'LightPink2',
	'LightPink3',
	'LightPink4',
	'LightSalmon',
	'LightSalmon1',
	'LightSalmon2',
	'LightSalmon3',
	'LightSalmon4',
	'LightSeaGreen',
	'LightSkyBlue',
	'LightSkyBlue1',
	'LightSkyBlue2',
	'LightSkyBlue3',
	'LightSkyBlue4',
	'LightSlateBlue',
	'LightSlateGray',
	'LightSlateGrey',
	'LightSteelBlue',
	'LightSteelBlue1',
	'LightSteelBlue2',
	'LightSteelBlue3',
	'LightSteelBlue4',
	'LightYellow',
	'LightYellow1',
	'LightYellow2',
	'LightYellow3',
	'LightYellow4',
	'lime',
	'lime green',
	'LimeGreen',
	'linen',
	'magenta',
	'magenta1',
	'magenta2',
	'magenta3',
	'magenta4',
	'maroon',
	'maroon1',
	'maroon2',
	'maroon3',
	'maroon4',
	'medium aquamarine',
	'medium blue',
	'medium orchid',
	'medium purple',
	'medium sea green',
	'medium slate blue',
	'medium spring green',
	'medium turquoise',
	'medium violet red',
	'MediumAquamarine',
	'MediumBlue',
	'MediumOrchid',
	'MediumOrchid1',
	'MediumOrchid2',
	'MediumOrchid3',
	'MediumOrchid4',
	'MediumPurple',
	'MediumPurple1',
	'MediumPurple2',
	'MediumPurple3',
	'MediumPurple4',
	'MediumSeaGreen',
	'MediumSlateBlue',
	'MediumSpringGreen',
	'MediumTurquoise',
	'MediumVioletRed',
	'midnight blue',
	'MidnightBlue',
	'mint cream',
	'MintCream',
	'misty rose',
	'MistyRose',
	'MistyRose1',
	'MistyRose2',
	'MistyRose3',
	'MistyRose4',
	'moccasin',
	'navajo white',
	'NavajoWhite',
	'NavajoWhite1',
	'NavajoWhite2',
	'NavajoWhite3',
	'NavajoWhite4',
	'navy',
	'navy blue',
	'NavyBlue',
	'old lace',
	'OldLace',
	'olive',
	'olive drab',
	'OliveDrab',
	'OliveDrab1',
	'OliveDrab2',
	'OliveDrab3',
	'OliveDrab4',
	'orange',
	'orange red',
	'orange1',
	'orange2',
	'orange3',
	'orange4',
	'OrangeRed',
	'OrangeRed1',
	'OrangeRed2',
	'OrangeRed3',
	'OrangeRed4',
	'orchid',
	'orchid1',
	'orchid2',
	'orchid3',
	'orchid4',
	'pale goldenrod',
	'pale green',
	'pale turquoise',
	'pale violet red',
	'PaleGoldenrod',
	'PaleGreen',
	'PaleGreen1',
	'PaleGreen2',
	'PaleGreen3',
	'PaleGreen4',
	'PaleTurquoise',
	'PaleTurquoise1',
	'PaleTurquoise2',
	'PaleTurquoise3',
	'PaleTurquoise4',
	'PaleVioletRed',
	'PaleVioletRed1',
	'PaleVioletRed2',
	'PaleVioletRed3',
	'PaleVioletRed4',
	'papaya whip',
	'PapayaWhip',
	'peach puff',
	'PeachPuff',
	'PeachPuff1',
	'PeachPuff2',
	'PeachPuff3',
	'PeachPuff4',
	'peru',
	'pink',
	'pink1',
	'pink2',
	'pink3',
	'pink4',
	'plum',
	'plum1',
	'plum2',
	'plum3',
	'plum4',
	'powder blue',
	'PowderBlue',
	'purple',
	'purple1',
	'purple2',
	'purple3',
	'purple4',
	'red',
	'red1',
	'red2',
	'red3',
	'red4',
	'rosy brown',
	'RosyBrown',
	'RosyBrown1',
	'RosyBrown2',
	'RosyBrown3',
	'RosyBrown4',
	'royal blue',
	'RoyalBlue',
	'RoyalBlue1',
	'RoyalBlue2',
	'RoyalBlue3',
	'RoyalBlue4',
	'saddle brown',
	'SaddleBrown',
	'salmon',
	'salmon1',
	'salmon2',
	'salmon3',
	'salmon4',
	'sandy brown',
	'SandyBrown',
	'sea green',
	'SeaGreen',
	'SeaGreen1',
	'SeaGreen2',
	'SeaGreen3',
	'SeaGreen4',
	'seashell',
	'seashell1',
	'seashell2',
	'seashell3',
	'seashell4',
	'sienna',
	'sienna1',
	'sienna2',
	'sienna3',
	'sienna4',
	'silver',
	'sky blue',
	'SkyBlue',
	'SkyBlue1',
	'SkyBlue2',
	'SkyBlue3',
	'SkyBlue4',
	'slate blue',
	'slate gray',
	'slate grey',
	'SlateBlue',
	'SlateBlue1',
	'SlateBlue2',
	'SlateBlue3',
	'SlateBlue4',
	'SlateGray',
	'SlateGray1',
	'SlateGray2',
	'SlateGray3',
	'SlateGray4',
	'SlateGrey',
	'snow',
	'snow1',
	'snow2',
	'snow3',
	'snow4',
	'spring green',
	'SpringGreen',
	'SpringGreen1',
	'SpringGreen2',
	'SpringGreen3',
	'SpringGreen4',
	'steel blue',
	'SteelBlue',
	'SteelBlue1',
	'SteelBlue2',
	'SteelBlue3',
	'SteelBlue4',
	'tan',
	'tan1',
	'tan2',
	'tan3',
	'tan4',
	'teal',
	'thistle',
	'thistle1',
	'thistle2',
	'thistle3',
	'thistle4',
	'tomato',
	'tomato1',
	'tomato2',
	'tomato3',
	'tomato4',
	'turquoise',
	'turquoise1',
	'turquoise2',
	'turquoise3',
	'turquoise4',
	'violet',
	'violet red',
	'VioletRed',
	'VioletRed1',
	'VioletRed2',
	'VioletRed3',
	'VioletRed4',
	'wheat',
	'wheat1',
	'wheat2',
	'wheat3',
	'wheat4',
	'white',
	'white smoke',
	'WhiteSmoke',
	'yellow',
	'yellow green',
	'yellow1',
	'yellow2',
	'yellow3',
	'yellow4',
	'YellowGreen',
	# ここから Mac専用
	'systemActiveAreaFill',
	'systemAlertActiveText',
	'systemAlertBackgroundActive',
	'systemAlertBackgroundInactive',
	'systemAlertInactiveText',
	'systemAlternatePrimaryHighlightColor',
	'systemAppleGuideCoachmark',
	'systemBevelActiveDark',
	'systemBevelActiveLight',
	'systemBevelButtonActiveText',
	'systemBevelButtonInactiveText',
	'systemBevelButtonPressedText',
	'systemBevelButtonStickyActiveText',
	'systemBevelButtonStickyInactiveText',
	'systemBevelInactiveDark',
	'systemBevelInactiveLight',
	'systemBlack',
	'systemBlackText',
	'systemButtonActiveDarkHighlight',
	'systemButtonActiveDarkShadow',
	'systemButtonActiveLightHighlight',
	'systemButtonActiveLightShadow',
	'systemButtonFace',
	'systemButtonFaceActive',
	'systemButtonFaceInactive',
	'systemButtonFacePressed',
	'systemButtonFrame',
	'systemButtonFrameActive',
	'systemButtonFrameInactive',
	'systemButtonInactiveDarkHighlight',
	'systemButtonInactiveDarkShadow',
	'systemButtonInactiveLightHighlight',
	'systemButtonInactiveLightShadow',
	'systemButtonPressedDarkHighlight',
	'systemButtonPressedDarkShadow',
	'systemButtonPressedLightHighlight',
	'systemButtonPressedLightShadow',
	'systemButtonText',
	'systemChasingArrows',
	'systemDialogActiveText',
	'systemDialogBackgroundActive',
	'systemDialogBackgroundInactive',
	'systemDialogInactiveText',
	'systemDocumentWindowBackground',
	'systemDocumentWindowTitleActiveText',
	'systemDocumentWindowTitleInactiveText',
	'systemDragHilite',
	'systemDrawerBackground',
	'systemFinderWindowBackground',
	'systemFocusHighlight',
	'systemHighlight',
	'systemHighlightAlternate',
	'systemHighlightSecondary',
	'systemHighlightText',
	'systemIconLabelBackground',
	'systemIconLabelBackgroundSelected',
	'systemIconLabelSelectedText',
	'systemIconLabelText',
	'systemListViewBackground',
	'systemListViewColumnDivider',
	'systemListViewEvenRowBackground',
	'systemListViewOddRowBackground',
	'systemListViewSeparator',
	'systemListViewSortColumnBackground',
	'systemListViewText',
	'systemListViewWindowHeaderBackground',
	'systemMenu',
	'systemMenuActive',
	'systemMenuActiveText',
	'systemMenuBackground',
	'systemMenuBackgroundSelected',
	'systemMenuDisabled',
	'systemMenuItemActiveText',
	'systemMenuItemDisabledText',
	'systemMenuItemSelectedText',
	'systemMenuText',
	'systemMetalBackground',
	'systemModelessDialogActiveText',
	'systemModelessDialogBackgroundActive',
	'systemModelessDialogBackgroundInactive',
	'systemModelessDialogInactiveText',
	'systemMovableModalBackground',
	'systemMovableModalWindowTitleActiveText',
	'systemMovableModalWindowTitleInactiveText',
	'systemNotificationText',
	'systemNotificationWindowBackground',
	'systemPlacardActiveText',
	'systemPlacardBackground',
	'systemPlacardInactiveText',
	'systemPlacardPressedText',
	'systemPopupArrowActive',
	'systemPopupArrowInactive',
	'systemPopupArrowPressed',
	'systemPopupButtonActiveText',
	'systemPopupButtonInactiveText',
	'systemPopupButtonPressedText',
	'systemPopupLabelActiveText',
	'systemPopupLabelInactiveText',
	'systemPopupWindowTitleActiveText',
	'systemPopupWindowTitleInactiveText',
	'systemPrimaryHighlightColor',
	'systemPushButtonActiveText',
	'systemPushButtonInactiveText',
	'systemPushButtonPressedText',
	'systemRootMenuActiveText',
	'systemRootMenuDisabledText',
	'systemRootMenuSelectedText',
	'systemScrollBarDelimiterActive',
	'systemScrollBarDelimiterInactive',
	'systemSecondaryGroupBoxBackground',
	'systemSecondaryHighlightColor',
	'systemSelectedTabTextColor',
	'systemSheetBackground',
	'systemSheetBackgroundOpaque',
	'systemSheetBackgroundTransparent',
	'systemStaticAreaFill',
	'systemSystemDetailText',
	'systemTabFrontActiveText',
	'systemTabFrontInactiveText',
	'systemTabNonFrontActiveText',
	'systemTabNonFrontInactiveText',
	'systemTabNonFrontPressedText',
	'systemTabPaneBackground',
	'systemToolbarBackground',
	'systemTransparent',
	'systemUtilityWindowBackgroundActive',
	'systemUtilityWindowBackgroundInactive',
	'systemUtilityWindowTitleActiveText',
	'systemUtilityWindowTitleInactiveText',
	'systemWhite',
	'systemWhiteText',
	'systemWindowBody',
	'systemWindowHeaderActiveText',
	'systemWindowHeaderBackground',
	'systemWindowHeaderInactiveText',
	'systemControlAccentColor',
	'systemControlTextColor',
	'systemDisabledControlTextColor',
	'systemLabelColor',
	'systemSelectedTextBackgroundColor',
	'systemSelectedTextColor',
	'systemTextBackgroundColor',
	'systemTextColor',
	'systemWindowBackgroundColor',
	'systemWindowBackgroundColor1',
	'systemWindowBackgroundColor2',
	'systemWindowBackgroundColor3',
	'systemWindowBackgroundColor4',
	'systemWindowBackgroundColor5',
	'systemWindowBackgroundColor6',
	'systemWindowBackgroundColor7',
	# ここから Windows専用
	'system3dDarkShadow',
	'systemHighlight',
	'system3dLight',
	'systemHighlightText',
	'systemActiveBorder',
	'systemInactiveBorder',
	'systemActiveCaption',
	'ystemInactiveCaption',
	'systemAppWorkspace',
	'systemInactiveCaptionText',
	'systemBackground',
	'systemInfoBackground',
	'systemButtonFace',
	'systemInfoText',
	'systemButtonHighlight',
	'systemMenu',
	'systemButtonShadow',
	'systemMenuText',
	'systemButtonText',
	'systemScrollbar',
	'systemCaptionText',
	'systemWindow',
	'systemDisabledText',
	'systemWindowFrame',
	'systemGrayText',
	'systemWindowText',
)
# ↑ http://www.tcl.tk/man/tcl8.6/TkCmd/colors.htm から色名だけ引用

# メインウィンドウ作成
app = tkinter.Tk()

# キャンバスのサイズ
height = CANVAS_HEIGHT
width = COLOR_BAR_WIDTH + TEXT_WIDTH + 5

# キャンバスを作成
canvas = tkinter.Canvas(
	app,
	width=width, # 表示領域の幅
	height=height, # 表示領域の高さ
	bg="white"
)
canvas.grid(column=0,row=0)

# 垂直方向のスクロールバーを作成
scroll_bar = tkinter.Scrollbar(
	app,
	orient=tkinter.VERTICAL, # 垂直方向設定
)
scroll_bar.grid(column=1,row=0,sticky=tkinter.N+tkinter.S)

# 全ての色を描画した時の高さを計算
scroll_height = COLOR_BAR_HEIGHT * len(colors)

# キャンバスのスクロール可能領域を設定
canvas.config(
	scrollregion =(0, 0, width, scroll_height)
)

# スクロールバーでキャンバスをスクロールするための設定
canvas.config(
	yscrollcommand=scroll_bar.set
)
scroll_bar.config(
	command=canvas.yview
)

# キャンバスに色名とその色でカラーバーを描画
for j, color in enumerate(colors):
	
	# 色名を描画する座標を計算(中心座標)
	text_x = TEXT_WIDTH // 2
	text_y = j * COLOR_BAR_HEIGHT+COLOR_BAR_HEIGHT // 2

	# カラーバーを描画する座標を計算(開始と終了座標)
	rect_sx = TEXT_WIDTH
	rect_sy = j * COLOR_BAR_HEIGHT
	rect_ex = TEXT_WIDTH+COLOR_BAR_WIDTH
	rect_ey = (j + 1) * COLOR_BAR_HEIGHT
	
	# 色名を描画
	canvas.create_text(
		text_x, text_y, # 描画位置
		text=color, # 描画する文字列(色名)
		anchor=tkinter.CENTER, # 描画する基準位置
	)
	try:
		# colorで塗りつぶしたカラーバーを描画
		id = canvas.create_rectangle(
			rect_sx, rect_sy, # 描画する位置(開始座標)
			rect_ex, rect_ey, # 描画する位置(終了座標)
			fill=color # 塗りつぶし色
		)

	except tkinter.TclError:
		# create_rectangleに失敗したらその色は設定不可
		print(color + "は設定不可です")

# メインループ
app.mainloop()

つくりは非常に簡単で、tkinter で利用可能な “色名” 全てを要素とするタプル colors を用意し、この colors の全要素の “色名” を表示するためのテキストと、その色で塗りつぶした長方形を座標をずらしながらキャンバスに描画しているだけです。

MEMO

下記の2つは Tk のドキュメントに誤字がありましたので、正式名称に修正して colors にセットしています

  • aguaaqua
  • crymsoncrimson

また、利用可能な色名が非常に多くて画面内に全て表示することができないため、スクロールバーを利用してキャンバスをスクロールして表示するようにしています。

実行すると下のアニメーションのようなアプリが起動し、色名とその色の見本を確認することができます。

色の見た目を表示するアプリの画面

色の見本の長方形自体が描画されない部分もあると思いますが、これは前述の通り OS がその “色名” に対応していないためだと思います。私は MacOSX 環境で動作確認しましたが、Windows 専用の “色名” に対する長方形はほぼ描画されませんでした(create_rectangle でエラーが発生する)。

スポンサーリンク

まとめ

今回は tkinter で利用可能な “色名” の調べ方と、実際にその色名をしたときの色の見本を表示するスクリプトの紹介を行いました。

ウィジェットやキャンバスへの描画図形の設定時に指定する “色名” にどんなものが利用可能があるか謎だった人も多いのではないでしょうか?

実は私もこれが謎だったので、今回調べてこのページを作成してみました!

全ての色を表示する方法(スクリプト)も紹介していますので、是非これを利用して使用したい “色名” を見つけていただければと思います!

ただ色名が多すぎるので覚えるのは大変ですね…。個人的には細かい色指定はカラーコード指定する方が楽かな…。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です