Python

PythonでGUI作成ならTkinterが簡単でおすすめ【サンプルあり】




PythonでGUI作成ならTkinterが簡単でおすすめみなさんこんにちは、ソラです。

PythonでGUIを作成してみたい!
リク

 

こんな悩みを解決していきます。

 

本記事の読者理想

  • PythonでGUIを作成できるライブラリを知りたい
  • Tkinterとは何か知りたい
  • Tkinterの使い方とは

 

機械学習やビッグデータ解析などに強いPythonですが、実はGUIも作成することができます。

 

中でも今回紹介するTkinterは数あるGUIライブラリの中でも比較的学習しやすい、プログラミング初心者にもおすすめできるGUIライブラリです。

 

そこで本記事では、Tkinterをおすすめする理由とともにちょっとしたサンプルをまとめていきます。

 

< まずはプログラミング無料体験レッスンから >

侍エンジニア塾を見てみる

 

 

PythonのGUIライブラリ一覧

PythonのGUIライブラリ一覧まずはPythonの代表的なGUIライブラリを一覧で見てみましょう。

 

チェックリスト

  • Tkinter
  • Kivy
  • wxPython
  • PyQt
  • PySimpleGUI

 

どれも需要ある使い勝手の良いライブラリで、どれか1つでも習得すれば大変価値のあるスキルとなります。

 

中でも今回ご紹介するTkinterは特に使い勝手がよく、PythonのGUIならといえるほど人気のライブラリです。

ぜひ本記事を機に扱ってみましょう!

 

Tkinterとは

TkinterとはPythonの標準ライブラリであるTkinter。

 

数あるGUIライブラリの中でも比較的理解しやすく、コードも直感的に扱えるつくりになっているのが特徴です。

 

機能面が物足りない気がする…
リク
ソラ
いえいえ、ちょっとしたGUI作成には十分すぎるくらいですよ!

 

ちょっとしたGUIどころか、顧客管理システムなんかも作れる優秀なGUIです。

個人的には標準ライブラリでこの機能なら仕事でも使える、最強のライブラリだと感じています。

 

Tkinterをおすすめする3つの理由

Tkinterをおすすめする3つの理由ここからはTkinterをおすすめする3つの理由をまとめていきます。

 

おすすめの理由

  • 標準ライブラリでインストール不要
  • コードがシンプルで分かりやすい
  • 実用例が他GUIと比較して多い

 

1つずつ解説していきます。

 

標準ライブラリでインストール不要

Tkinterは標準ライブラリで改めてインストールする必要がありません。

 

Pythonをインストールしたパソコンであれば、環境設定を一切せず開発をすることが可能なのです。

 

開発環境を整えなくていいのは、Tkinterを使用する最大のメリットでしょう。

 

また、Tkinterで作成したプログラムはクロスプラットフォームで動作可能です。

WindowsやMacという縛りなく使用できるのは魅力的です。

 

Windows版Pythonのインストール方法を解説
参考Windows版Pythonのインストール方法を解説【一緒に開発環境を作りましょう】

 

コードがシンプルで分かりやすい

Tkinterはコードがシンプルで分かりやすい特徴があります。

 

GUIアプリを開発できるプログラミング言語はたくさんあるのですが、正直どれも必ず1癖2癖あります。

 

しかし、Tkinterは本当に癖がありません。

後ほどサンプルをご紹介しますが、プログラミング初心者でもわかりやすいコーディングとなっています。

 

実用例が他GUIライブラリと比較して多い

Tkinterは実用例が他GUIライブラリと比較して多く存在します。

 

ネット上にもたくさんソースは転がっていますし、Tkinterをまとめた書籍もいくつも出版されています。

 

私はほぼ完全独学で学習したため、いろんなサイトを参考にしてきました。

中でも以下の3サイトは本当に助かる情報を載せています。

 

>> Office54様

>> Delftスタック様

>> 鎖プログラム様

 

大抵の情報は載っていますので、気軽に始めてみましょう!

 

< まずはプログラミング無料体験レッスンから >

侍エンジニア塾を見てみる

 

簡単な画面を作成してみましょう

簡単な画面を作成してみましょうさっそくTkinterでGUIを作成してみましょう。

 

今回作成した環境は以下の通りです。

開発環境

  • Pythonバージョン: Python3.9.0
  • 開発環境: VSCode
  • OS: Windows10Pro 64ビット

 

私は開発環境にVSCodeを使用していますが、開発できるエディタであれば何でも構いません。

>> VSCodeをおすすめする理由はこちら

 

また、もしまだPythonをインストールしていない方はこちらの記事を参考にインストールしてみましょう。

>> Pythonのインストール方法はこちら

 

作成する画面とコード

今回作成するサンプルGUIアプリがこちらです。

Tkinterサンプル

 

内容的には以下の通りです。

簡単な流れ

  • テキストに適当な文字を入力する
  • 表示ボタンをクリックすると、テキストに書いた文字がメッセージとしてポップアップされる
  • 閉じるボタンをクリックするとアプリを終了する

 

シンプルですが、GUIに必要なボタンクリック処理やテキストの文字取得など要素が詰まったGUIアプリです。

 

では実際にコードをコピーして動かしてみましょう!

 


import tkinter as tk
from tkinter import messagebox

# ----閉じるボタンをクリックされたときの処理----
def App_Close():
    # 画面を閉じる
    root.quit()

# ----表示ボタンをクリックされたときの処理----
def On_Click():
    msg = txtEntry.get()    # テキストの内容を取得する
    # メッセージを表示する
    if msg == "":
        messagebox.showerror("サンプル", "何も書かれていません。")
    else:
        messagebox.showinfo("サンプル", msg)

def WindowMain():
    global root, txtEntry
    # 画面構成
    root = tk.Tk()
    root.title("サンプル")
    root.geometry("300x200")
    
    # ----Wedgetを設置する----
    # テキスト
    txtEntry = tk.Entry(root, font=("", 10))
    txtEntry.place(x=50, y=20, width=200, height=35)
    # ボタン
    btnHello = tk.Button(root, text="表示", width=10, command=On_Click)
    btnHello.place(x=110, y=70)
    btnClose = tk.Button(root, text="閉じる", width=10, command=App_Close)
    btnClose.place(x=110, y=150)
    
    # 画面を表示する
    root.mainloop()

if __name__ == '__main__':
    WindowMain()

 

 

コードの解説

今回のコードで解説するのは以下の5つです。

 

解説ポイント

  • ライブラリのインポート
  • Pythonを実行するおまじないコード
  • 画面を構成する部分
  • 表示ボタンのクリック処理
  • 閉じるボタンのクリック処理

 

1つずつ順に解説していきます。

 

ライブラリのインポート

Pythonでプログラミングするうえでライブラリのインポートは欠かせません。

 

本コードの上から2行までがインポート部分です。

 


import tkinter as tk
from tkinter import messagebox

 

要するに、このプログラムではこのライブラリを使用しますよという宣言です。

Tkinterを使用する場合、1行目は必ず必要になります。

 

また、今回はメッセージ機能を採用しているため、加えて2行目で宣言しています。

 

Pythonを実行するおまじないコード

次に見るのは最後の2行です。

 


if __name__ == '__main__':
    WindowMain()

 

WindowMain()は画面を呼び出すための個人的な関数ですが、注目すべきは「if __name__~」の部分です。

 

今回はあまり詳しく説明はしませんが、Pythonをコーディングするうえで大事な文言です。

Pythonを実行するおまじないコードと覚えておきましょう。

 

画面を構成する部分

次は画面を構成するコードになります。

 


def WindowMain():
    global root, txtEntry
    # 画面構成
    root = tk.Tk()
    root.title("サンプル")
    root.geometry("300x200")
    
    # ----Wedgetを設置する----
    # テキスト
    txtEntry = tk.Entry(root, font=("", 10))
    txtEntry.place(x=50, y=20, width=200, height=35)
    # ボタン
    btnHello = tk.Button(root, text="表示", width=10, command=On_Click)
    btnHello.place(x=110, y=70)
    btnClose = tk.Button(root, text="閉じる", width=10, command=App_Close)
    btnClose.place(x=110, y=150)
    
    # 画面を表示する
    root.mainloop()

 

rootという変数にTkinterの基を呼び出し、画面のタイトルやサイズを指定します。

 

次に、画面の中にWedget(ボタンやテキスト)などを配置するコードを行っていきます。

大きさや配置場所は何となく理解できると思います。

 

command=って何?
リク

という方が大半でしょう。

 

これはイベント関数といい、ボタンがクリックされたときの処理をまとめた関数の名前が入っています。

 

今回でいえば、

・表示ボタン → On_Click

・閉じるボタン → App_Close

という関数が呼び出されるようになっています。

 

表示ボタンのクリック処理

今回、表示ボタンをクリックすると「On_Click」という関数が呼び出されるようになっています。

 

それが下記コード。


# ----表示ボタンをクリックされたときの処理----
def On_Click():
    msg = txtEntry.get()    # テキストの内容を取得する
    # メッセージを表示する
    if msg == "":
        messagebox.showerror("サンプル", "何も書かれていません。")
    else:
        messagebox.showinfo("サンプル", msg)

 

クリックされたら、まずはテキストに書かれた内容を取得し、msgという変数に代入します。

 

次にmsgに代入された値によって、表示するメッセージを変更するように条件文を書いています。

・もしmsgに何も入っていない場合 → 「何も書かれていません。」

・上記条件以外 → msgの内容をそのまま出力

 

条件文はGUIでもかなり使用頻度が高いので、ぜひ習得しておきましょう!

 

\ Pythonの基礎が習得できます!/

Progateを有料で正しく利用する
参考【有料版を利用するべき】Progateを正しく利用してプログラミングの基礎を身に付けよう

 

閉じるボタンのクリック処理

最後は閉じるボタンのクリック処理です。

 


# ----表示ボタンをクリックされたときの処理----
def App_Close():
    # 画面を閉じる
    root.quit()

 

Tkinterでは画面を閉じるとき、quit()と入力します。

 

これはコマンドプロンプトでPythonを起動した場合でも使用しますので、ぜひ覚えておきましょう!

 

< まずはプログラミング無料体験レッスンから >

侍エンジニア塾を見てみる

 

Tkinter:まとめ

Tkinterは標準ライブラリでPythonをインストールすれば即扱えますし、GUIを触れるにはもってこいのライブラリです。

 

また、Tkinterを習得すれば、ある程度のGUIを作成できます。

ときに依頼をこなしたり、自分専用の業務アプリを作るのも良いでしょう。

 

学習しやすいGUIライブラリ、Tkinter。

ぜひお試しください!!

 

おすすめ記事

Pythonでできる具体例7つ
【プログラミング学習】Pythonで何ができるの?具体例を7つまとめました




-Python
-,

© 2021 ソラブログ Powered by AFFINGER5