tkinterで使用できるcolorchooserの使用方法を、実際に簡単なアプリを作成して確認しました。
目次
colorchooserの概要
colorchooserは、ユーザーが色を選択するためのダイアログを表示し、選択した色の値を返すためのモジュールです。
以下に、colorchooserを使用して表示した、色を選択するダイアログを示します。
色を選択して「OK」ボタンを押すと、選択した色のRGB値とカラーコードを、タプルで返してくれます。
例:((255.99609375, 128.5, 128.5), '#ff8080')
colorchooserの基本
インポート
colorchooserを使用するには、tkinterとは別にインポートをしておく必要があります。
from tkinter import colorchooser
ダイアログ呼び出し
「colorchooser.askcolor()」を実行すると、色選択用のダイアログが表示され、選択した色のRBG値とカラーコードを返してくれます。
color = colorchooser.askcolor()
colorにはタプルで色情報が入力され、要素1がRBG値、要素2がカラーコードになります。
次は、実際に簡単なアプリを作成しながら詳しい使い方を確認していきます。
アプリ概要
ボタンを押すと色選択ダイアログが起動し、選択した色をボタンの背景に設定するアプリを作成します。
以下に、作成したアプリの外観を示します。
ボタンが一つ表示されており、クリックすると色選択ダイアログが表示されます。
色を選択して「OK」ボタンを押すと、ボタンの背景が選択した色に変化します。
色選択ダイアログの呼び出し及びウィジェットへの設定をすることができました。
コードの解説
準備
モジュールのインポートと、tkinterのトップレベルウィジェットを作成します。
今回インポートするモジュールはtkinterとcolorchooserです。
import tkinter from tkinter import colorchooser #1.色選択ボタンのクラス if __name__ == "__main__": root = tkinter.Tk() #2.ボタンの表示 root.mainloop()
1.色選択ボタンのクラス
色選択ボタンのクラスを作成していきます。
tkinterのボタンクラスを継承し、クリック時にcolorchooserを呼び出す機能を追加します。
#1.色選択ボタンのクラス class ColorSelectButton(tkinter.Button): def __init__(self, master): super().__init__( master=master, text="set color", width=15, command=self.color_change, #クリック時に実行 ) def color_change(self): c = colorchooser.askcolor() #colorchooser呼び出し self.config(bg=c[1]) #背景を選択した色に設定
colorchooserで取得したカラーコードを、configオプションで自身の背景に設定しています。
2.ボタンの表示
最後に、ColorSelectButtonのオブジェクトを生成し、完了です。
#2.ボタンの表示
b = ColorSelectButton(master=root)
b.pack()
コード全文
import tkinter from tkinter import colorchooser #1.色選択ボタンのクラス class ColorSelectButton(tkinter.Button): def __init__(self, master): super().__init__( master=master, text="set color", width=15, command=self.color_change, #クリック時に実行 ) def color_change(self): c = colorchooser.askcolor() #colorchooser呼び出し self.config(bg=c[1]) #背景を選択した色に設定 if __name__ == "__main__": root = tkinter.Tk() #2.ボタンの表示 b = ColorSelectButton(master=root) b.pack() root.mainloop()