見出し画像

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_1button_1button_2を作成、配置しています。オブジェクトの配置には、grid関数を使用しています。そのほかにも、pack関数やplace関数といった配置方法があります。

最後に、root.mainloop()は、操作画面を表示しユーザーの操作を待ち受けながらプログラムを実行し続ける無限ループの処理を実行します。無限ループはアプリが終了するまで実行されます。

まとめ

CustomTkinterで操作画面を作成する方法を紹介しました。CustomTkinterは、Pythonに標準で搭載されるTkinterと組み合わせて使用することも可能です。ぜひ、お試しください。


いいなと思ったら応援しよう!