python GUI(ウィンドウ)アプリを作成する方法[画面を作成! Pythonデザインライブラリ TKinter]

Python
この記事は約4分で読めます。

私は、これまでずっとWindowsを使用してきました。Windowsに慣れているとGUIアプリがほとんで最近ではコマンドラインを使うことってほとんどないですよね。
ですが、Pythonはコマンドラインを使用して実行することがほとんどで、覚えるのがめんどくさくて、私はちょっとコマンドライン アレルギーで、GUIがないとつらいなぁって思ってしまいます。
同じようなことが みなさんないでしょうか?

でも実は、PythonでもGUIのアプリを作成することができるんです。
しかも、Pythonなので、Windows・Linux・MacなどPythonをインストールさえすればどんな環境でも同じように使用できます
※プログラム内で使用するライブラリやAPIによって使用できない場合はあります。
なんといってもこれがPythonの強みですよね。

ですのでちょっと紹介いたします。
GUIのアプリを作成するためには、TKinterというライブラリを使用します。
ではまず、 TKinter の導入の方法から紹介します。

TKinter の導入

TKinterは実はpythonの標準のライブラリでいつもの”pip”でダウンロードではなく↓のようにダウンロードします。
まずは、Pythonのインストーラを用意します。インストーラはインストールされているVerと同じものを使用してください。↓からインストールします。

Download Python
The official home of the Python Programming Language

私の環境には、3.9.7がインストールされていますので、↓をしました。

python-3.9.7-amd64.exe

じゃあインストールしていきましょう。まずは、インストーラを実行します。
すでに済みのインストール状態での実行ですので、インストール時と違った画面になります。
では「Modify」をクリックします。

続いて、表示された画面で、「td/tk and IDLE」というのにチェックをいれてNextをクリックします。

つづいて、出てきた画面で、気にせずInstallを押してください

で、次の画面では「Close」をクリックしてください。

はい。これで、TKinterの導入完了です。

サンプルプログラミング

では続いて、プログラミングです。
今回は簡単にボタンをクリックするとラベルの文字がインクリメントされるだけのものを作成してみます。
じゃあいつもどおりまずは、コード一式を以下に記載します。

import tkinter
from functools import partial


def main( ):    
    root = tkinter.Tk()
    root.title(u"Test")        # タイトル
    root.geometry("300x100")   # Windowsサイズを設定
    
    # Label
    text = tkinter.StringVar()
    text.set("0")

    label1 = tkinter.Label(root, textvariable  = text )       # ラベル生成  初期テキストを設定
    label1.pack()                           # 描画位置を中央 上 詰めでセット
    
    # Button
    button1 = tkinter.Button(root, text="Click") # ボタンを生成 
    button1.configure(width=30,height=3)    # Buttonのサイズを指定
    button1.place(x=40,y=30)                # 描画位置を指定してセット
    
    def bt_click( ):                      # ボタンクリックのコールバック関数
        now_str = text.get()              # 現在テキストを取得
        now_int = int(now_str) + 1        # データをintに変換して、インクリメント
        text.set( str(now_int) )          # 値を再セット
        
    button1.configure(command = bt_click )     # Buttonクリック時のコールバック設定
    
    root.mainloop()                       # フォームの描画開始

if __name__ == '__main__':
    main()

実行結果

結果は↓の通りです。Clickを押すごとに上の数字がインクリメントされていきます。

続いてはプログラムの解説ですが、解説は次ページにて記載します。

コメント

タイトルとURLをコピーしました