Pythonで簡単なGUIアプリを作成する


最近AIや分析等の分野で活躍しているPythonですが、普通のデスクトップアプリケーションの作成にも利用可能です。

今回はPythonに標準で付属しているGUIライブラリ「Tkinter(ティーキンター、ティケーインター)」を利用して、入力した値をターミナルに書き出す簡単なGUIアプリを作成します。

使うもの

私が動作を確認した構成は以下の通りです

  • Python 3.7.3

IDEはVisual Studio Codeを利用しています。

Python のインストール

公式サイトに行ってダウンロード&インストールを行ってください。

とりあえずTkinterを使う

Visual Studio Codeにて「新しいファイル」をクリックして、「form.py」と名前を付けて保存してください。

プログラムの先頭にtkinterを利用しますよという宣言を記述します。

from tkinter import *
from tkinter import ttk

次にメインとなるフォームを以下の様に定義します。

mainform = Tk()
mainform.title('GUIアプリのテスト')

このmainform.title('GUIアプリのテスト')がフォームのタイトルになります。

ウィジェットの配置

次にウィジェットを配置します。

tkinterではラベルやテキストボックス等をウィジェットと呼び、それぞれ動作内容等を定義する事が出来ます。

今回はフレームを作成し、ラベルとテキスト入力ボックス、ボタンを作成します。

以下の様に入力を行います。

frame1 = ttk.Frame(mainform, padding=16)
label1 = ttk.Label(frame1, text='テキストを入力してください。')
t = StringVar()
entry1 = ttk.Entry(frame1, textvariable=t)
button1 = ttk.Button(
    frame1,
    text='OK',
    command=lambda: print('入力値は, %s.' % t.get()))
  • ttk.Frameがフレームの設定
  • ttkLabelがラベルの設定
  • ttk.Entryがテキストボックスの設定
  • ttk.Buttonがボタンの設定となります。

なおボタンには別の場所で定義したモジュールを呼び出す設定も可能です。

レイアウトの設定

作成したウィジェットを配置します。

今回はシンプルに横一列に並べてみます。

frame1.pack()
label1.pack(side=LEFT)
entry1.pack(side=LEFT)
button1.pack(side=LEFT)

左から順に並んで配置されます。

ウインドウの表示

ここまで来たら後はウインドウの表示コマンドを記述するのみです。

mainform.mainloop()

実行してみる

Visual Studio Codeのターミナルより以下のコマンドを実行します

python form.py

以下のようなGUIが表示されれば成功です。

試しに好きな言葉を入力します

ターミナルに以下の様に表示されればOKです

入力値は, 秋の味覚.

感想

GUIアプリケーションとしては行数も少なく、簡単に作る事が出来ます。

なんとなくVBチックな(フォームにロジックが紐づいた)作り方が出来るところも気に入りました。

現在VBやExcelで作られているシステムをPythonに書き換えてみてはいかがでしょうか?

PythonだとLinuxでもMacでも動作するのでとても便利ですよ。