【Python】tkinterでGUIの画面を作成する!

PythonでGUIの画面を作成するにはtkinter(ティーキンター)を使用します。

tkinterとは「Tool Kit Interface」の略で、GUI(Graphical User Interface)アプリケーションを作るためのライブラリであり、tkinterを使用すると、GUIの画面にボタンやチェックボックス、ラジオボタン、文字を表示するためのラベルなどのウィジェットを配置でき、ボタンを押して操作することができます。

また、print関数を使用することで、コンソールにログを残すことができるので動いているか動いていないかの確認をとることもできます。

今回は、Pythonのtkinter使って、以下の内容でGUIの画面を作成していきます。

⚫︎ プログラムの画面を作成する
⚫︎ ウィンドウのサイズを指定する場合
⚫︎ ボタンの配置位置を指定する場合
⚫︎ ウィンドウにボタンの配置する場合
⚫︎ ラジオボタンを配置する場合
⚫︎ メニューを配置する場合

tkinterとは

tkinter(ティーキンター)とは、「Tool Kit Interface」の略で、GUI(Graphical User Interface)アプリケーションを作るためのライブラリとなります。

Pythonには、GUIのアプリケーションを作るためのライブラリが標準で用意されており、tkinterはそのライブラリの一つとなります。

また、pythonの公式サイトでは下記のように記載されています。

tkinterパッケージ (“Tk インタフェース”) は、Tk GUI ツールキットに対する標準のPythonインタフェースです。
Tkと tkinterはほとんどのUnix プラットフォームの他、Windowsシステム上でも利用できます。

参考文献: https://docs.python.org/ja/3/library/tkinter.html

tkinterの書き方

tkinterの書き方は下記となります。

まずは、tkinterをインポートしてGUIの土台となる画面を表示します。
「import tkinter」でtkinterをインポートすることでtkinterのライブラリをすぐに使用することができます。

また、「as tk」とはtkinterをインポートしたあとで「tk」と いう略字を使って利用できるようにするものです。
毎回tkinterのように書くのは面倒なのでキーワードの「as」を使って「tk」という名前で使用するようにしています。

プログラムの画面を作成する場合

tkinterを使ってプログラムの画面を作成する場合はtkinterをインスタンス化します。

sample.py

出力結果

tkinterをインスタンス化することで、プログラムの画面を作成することができます。

ウィンドウのサイズを指定する場合

tkinterを使ってウィンドウのサイズを指定する場合はgeometry()メソッドを使用します。

geometry()メソッドとは、ウィンドウの縦横のサイズを設定するメソッドです。
引数は「200×100」のように数字と数字の間にアルファベットの「x」を入れます。
指定した数字をピクセル(px)単位に換算し、ウィンドウのサイズを設定します

sample.py

出力結果

geometry()メソッドによってウィンドウのサイズを設定してプログラムの画面が表示されています。

また、mainloop()とはプログラムが終了しても画面が消えないように維持するメソッドとなります。

ボタンの配置位置を指定する場合

tkinterを使ってボタンの配置位置を指定する場合はpack()メソッドを使用します。

pack()メソッドとは、オブジェクトを配置するメソッドであり、「どこにおくのか」というside定数を設定してオブジェクトの位置を指定します。

sample.py

出力結果

pack()メソッドにside定数を指定することで指定した場所にボタンが配置されています。

ウィンドウにボタンの配置する場合

tkinterを使ってウィンドウにボタンの配置する場合はpack()メソッド、grid()メソッド、place()メソッドの3つのメソッドがあります。

tkinterには、ボタンやチェックボックス、ラジオボタン、文字を表示するためのラベルなどが用意されており、それらのことをウィジェットといいます。
そのため、今回は3つのメソッドを使ってウィンドウにウィジェットを配置していきます。

pack()メソッドを使用する場合

pack()メソッドでウィンドウにボタンの配置すると、ウィンドウの上から順番にウィジェットを配置するようになります。

sample.py

出力結果

pack()メソッドによって上から順番にウィジェットが配置されています。

grid()メソッドを使用する場合

grid()メソッドを使用してでウィンドウにボタンの配置すると、行(row)と列(column)を指定してウィジェットを配置することができます。

grid()メソッドはウィジェットを格子状に並べて配置するメソッドとなります。
grid()の引数にrowとcolumnを指定することで指定した行と列にウィジェットを配置します。

sample.py

出力結果

glid()メソッドによって指定した行と列にウィジェットが配置されています。

place()メソッドを使用する場合

place()メソッドを使用してでウィンドウにボタンの配置すると、x座標とy座標を指定してウィジェットを配置することができます。

place()メソッドは、ウィジェットを座標指定して配置するメソッドとなります。
place()の引数にx座標とy座標を指定することで指定した座標にウィジェットを配置します。

sample.py

出力結果

place()メソッドによって指定したx座標とy座標にウィジェットが配置されています。

ウィンドウにラジオボタンを配置する場合

tkinterを使ってラジオボタンを配置する場合はtkinterのRadioButton()を使用します。

ラジオボタンと複数の選択肢の中から一つだけ選択するボタンであり、2つ以上は選択することはできないため、どれか1つだけ選択する場合に使用します。

RadioButton()の引数には親要素、textという表示する文字列、valueというラジオボタンを認識する値(Int型)、varibleというIntVarオブジェクトを指定します。
IntVaとはint型を保持するオブジェクトを作成し、get()メソッドで値を取得します。

sample.py

出力結果

RadioButton()によってラジオボタンが追加さています。

ウィンドウにメニューを配置する場合

tkinterを使ってメニューを配置する場合はMenu()クラスとconfigure()メソッドを使用します。

メニューはGUIアプリでは欠かせないウィジェットであり、tkinterのMenuクラスはウィンドウの上部にメニューを配置し人の数だけメニューの項目を追加できるオブジェクトを作成します。

また、configure()メソッドとはウィジェット属性の値を設定するメソッドとなります。
configure()メソッドの引数にオプションを指定することで、Menuオブジェクトをメニューバーに配置することができます。

sample.py

出力結果

Menuクラスとconfigure()メソッドによってメニューが追加さています。

tkinterを使った簡易なアプリケーション

tkinterを使った簡易なアプリケーションを紹介します。

ジャンケンアプリ

sample.py

出力結果

今回のポイント

tkinterでGUIの画面を作成

⚫︎ tkinterとはGUIアプリケーションを作るためのライブラリである

⚫︎ tkinterを使ってプログラムの画面を作成する場合はtkinterをインスタンス化する

⚫︎ tkinterを使ってウィンドウのサイズを指定する場合はgeometry()メソッドを使用する

⚫︎ tkinterを使ってボタンの配置位置を指定する場合はpack()メソッドを使用する

⚫︎ tkinterを使ってウィンドウにボタンの配置する場合は上からウィジェットを配置するpack()メソッド、行と列を指定してウィジェットを配置するgrid()メソッド、x座標とy座標を指定してウィジェットを配置するplace()メソッドの3つがある

⚫︎ tkinterを使ってウィンドウにラジオボタンを配置する場合はRadioButton()を使用する

⚫︎ tkinterを使ってウィンドウにメニューを配置する場合はMenu()クラスconfigure()メソッドを使用します。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し