PythonのCustomTkinterで操作画面を作成する方法
はじめに
Pythonでデスクトップアプリを作成する場合は、GUI(Graphical User Interface)の作成に「Tkinter」というPythonに標準で搭載されているライブラリがよく用いられます。
ここでは、Tkinterより少しおしゃれな「CustomTkinter」というライブラリを用いて、操作画面を作成する方法を紹介します。
操作画面を作成するプログラム
はじめに、Pythonをインストールした後、pipコマンドで、CustomTkinterをインストールします。
pip install customtkinter
つぎに、以下のプログラムファイル(.py)を作成します。
import customtkinter as ctk
def button_ok():
txt_var.set('OKをクリックしました')
def button_cancel():
txt_var.set('キャンセルをクリックしました')
if __name__ == '__main__':
root = ctk.CTk() # 画面の作成
root.geometry('380x150') # 画面のサイズ
root.title('メッセージ変更アプリ') # 画面のタイトル
ctk.set_appearance_mode('dark') # ダークモード
ctk.set_default_color_theme('blue') # カラーテーマ
# オブジェクト
txt_var = ctk.StringVar(value='') # ラベルの文字変数の作成
label_1 = ctk.CTkLabel(root, textvariable=txt_var) # ラベルの作成
label_1.grid(row=0, column=0, columnspan=2, padx=20, pady=20) # ラベルの配置
button_1 = ctk.CTkButton(root, text='OK', command=button_ok) # ボタンの作成
button_1.grid(row=1, column=0, padx=20, pady=20) # ボタンの配置
button_2 = ctk.CTkButton(root, text='キャンセル', command=button_cancel) # ボタンの作成
button_2.grid(row=1, column=1, padx=20, pady=20) # ボタンの配置
root.mainloop() # イベントループ
ユーザー定義関数
def button_ok():とdef button_cancel():は、ユーザー定義関数といい、ある処理を実行するまとまりを表しています。def button_ok():は、txt_varという変数に、「OKをクリックしました」という文字をセットしています。一方、def button_cancel():は、「キャンセルをクリックしました」という文字をセットしています。
変数txt_varは、label_1に表示される文字を格納する変数で、真ん中あたりの行で、txt_var = ctk.StringVar(value='')と定義されています。ここで、'' とは文字がないことを表し、最初はラベルに何も表示されない状態になります。
操作画面の作成
if __name__ == '__main__': は決まり文句で、プログラムが実行された時に、必ず最初に実行される処理のまとまりを表しています。
はじめにroot = ctk.CTk()とありますが、ctk.CTk()は操作画面のことを表しており、rootという変数に代入されています。これで、rootは操作画面を意味することとなり、root.geometry('380x150')で画面のサイズが、root.title('メッセージ変更アプリ')で画面のタイトル表示が定義されます。
つぎに、ctk.set_appearance_mode('dark')はダークモードの設定を、ctk.set_default_color_theme('blue')はカラーテーマの設定を表しています。'blue'を'dark-blue'に変更すると、ボタンの色が少し濃くなります。また、ダークモードの設定の行を削除すると、画面が標準の色合いになります。
オブジェクトの設定では、label_1とbutton_1、button_2を作成、配置しています。オブジェクトの配置には、grid関数を使用しています。そのほかにも、pack関数やplace関数といった配置方法があります。
最後に、root.mainloop()は、操作画面を表示しユーザーの操作を待ち受けながらプログラムを実行し続ける無限ループの処理を実行します。無限ループはアプリが終了するまで実行されます。
まとめ
CustomTkinterで操作画面を作成する方法を紹介しました。CustomTkinterは、Pythonに標準で搭載されるTkinterと組み合わせて使用することも可能です。ぜひ、お試しください。