【Tkinter開発】第1回 Tkinterでファイル読み取りGUIを開発する

2024年3月3日Python,エンジニアリングPython,Tkinter

Tkinterをユースケースに基づいて開発をしていくまでの過程を紹介する。

Tkinterは、製品としては機能とデザインの点で劣る部分はあるが、その分手軽であり、自分自身での利用やプロトタイプの作成には適している。

今回のユースケースでは、XMLファイルを読み込み、CSVファイルに変換する簡単なGUIアプリを作成してみる読み込んだXMLファイルは編集も可能とする。

Tkinterを使った基本的なGUIアプリの構築手順を学んでいきましょう

Tkinterとは

Tkinterは、Pythonの標準ライブラリに含まれるGUI(グラフィカルユーザーインターフェース)を作成するためのツールキットです。TkinterはTk GUIツールキットをPythonに統合したものであり、Pythonの標準のGUIツールキットとして幅広く使用されている。

Tkinterを使用することで、ウィンドウ、ボタン、テキストボックス、ラベルなどのGUI要素を含むさまざまなウィジェット(GUI部品)を作成し、それらを組み合わせてGUIアプリケーションを開発できる。TkinterはPythonとの統合が非常に簡単であり、Pythonの他の標準モジュールと同様にインポートして利用することができる。

例えば、シンプルなGUIウィンドウを表示するには以下のようにコードを作成する。

import tkinter as tk

# メインウィンドウの作成
root = tk.Tk()

# ラベルの作成
label = tk.Label(root, text="Hello, Tkinter!")

# ラベルをウィンドウに配置
label.pack()

# イベントループの開始
root.mainloop()

最初のアプリケーション

ファイルを分割して開発する

本当に簡単なアプリを作成するのであれば、上記のサンプルでも十分だが、今回はファイルを分割し、オブジェクト指向な考えをふんだんに取り入れて開発を進めていく。

まずは、起動部分となるmain.pyと画面部分となるapplication.pyの2つのPythonファイルを作成する。

import tkinter as tk

from application import Application

def main():
    root = tk.Tk()
    app = Application(root)
    app.pack()
    app.mainloop()

if __name__ == '__main__':
    main()
import tkinter as tk

class Application(tk.Frame):
    
    def __init__(self, master: tk.Tk):
        super().__init__(master)
        self.title = "Tkinter Application"
        
        master.geometry("800x600")
        master.title(self.title)

python main.py でアプリケーションが起動する。(もちろん、画面が立ち上がるだけで、白い画面になる)

main.pyでは、tk.TK()を作成し、Tkインスタンスを作成し、描画を担当するApplicationクラスにわたす。
そのインスタンスをpack()により上位に描画させ、mainloop()させる。

application.pyでは、Applicationクラスを定義し、タイトルとウィンドウの大きさの定義を行っている。

今後は、application.pyにウィジェットを配置して、機能を付け足していく。

第1回GUI画面

シリーズ通してのまとめはこちら。(全体のソースコードもこちらから)