pythonのtkinterでウィンドウを作成

コンピュータ

tkinterモジュールを使うとpythonでGUIを作ることが出来るらしいので試してみます。
とりあえずウィンドウを作るサンプルスクリプトを作成してみます。

import tkinter as tk

class MyFrame(tk.Frame):
    def __init__(self, master = None):
        super().__init__(master)

        self.master.title("タイトル")
        self.master.geometry("640x480")

if __name__ == "__main__":
    root = tk.Tk()
    frame1 = MyFrame(master = root)
    frame1.mainloop()

今回初めてpythonでclassを定義してみました。class MyFrame(tk.Frame):(tk.Frame)の部分はtk.Frameを継承するという意味になるようです。
def __init__(...はクラスのコンストラクタになります。
super().__init__(master)で親クラスのコンストラクタを呼び出しています。
self.master.title("タイトル")でタイトルをセット。
self.master.geometry("640x480")でウィンドウサイズを指定しています。実際はクライアント領域を指定してるようで文字列で解像度を指定しています。
文字列で指定するのは中々珍しく、昔見たことがあるような気がしたのですが、tkinterはTcl/Tk GUI ツールキットのpythonのインターフェイスで過去にTcl/Tkを書籍を買ってパラパラと流し読みしたことがありました。

ちなみに今回はwindowsで実行していますが、特別モジュールを追加することなく今回のサンプルスクリプトを実行することが出来ました。

Ubuntu22.04で実行したところ、tkinterモジュールがないとエラーが発生しました。

Traceback (most recent call last):
  File "/mnt/f/python/tkinter/tkinter01.py", line 1, in <module>
    import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'

pipでインストールはできませんでした。
調べたところaptでpython3-tkをインストールすると良いようです。

sudo apt -y install python3-tk

インストール後サンプルスクリプトを実行してみたところ成功しました。

以下の画像はubuntuで実行した例

WindowsとUbuntuで同じスクリプトでGUIを作ることが出来ることが確認できました。

コメント