MENU
  • ブログBlog
  • プロフィールProfile
  • ポートフォリオPortfolio
  • お問い合わせContact
  • お絵描き道場drawing dojo
「社会不適合者の生き方」
くじらいどブログ
  • ブログBlog
  • プロフィールProfile
  • ポートフォリオPortfolio
  • お問い合わせContact
  • お絵描き道場drawing dojo
くじらいどブログ
  • ブログBlog
  • プロフィールProfile
  • ポートフォリオPortfolio
  • お問い合わせContact
  • お絵描き道場drawing dojo
  1. ホーム
  2. PC
  3. PythonのTkinterで簡単なメモ機能を持つGUIを作成しよう

PythonのTkinterで簡単なメモ機能を持つGUIを作成しよう

2024 11/07
PC プログラミング
2023年6月11日2024年11月7日

どうも、python入門中のくじらいどです。

今回は自分への勉強のメモとしてブログを書いております。

PythonのTkinterを使って、簡単なメモ機能を持つGUIアプリケーションを作成してみましょう。このアプリケーションはテキスト入力エリアにメモを書き込み、保存や削除ができるというあまりにも簡単すぎる機能のアプリですがTkinterの入門をするには丁度いいボリュームとなりますのでぜひ一緒に作っていきましょう。

コードの全貌を記載してありますので、必要に応じてコードを修正してGUIの配置を変えたりして教材的にお試しあれ!

目次

コードの解説

ライブラリのインポート

では、さっそくコードを作っていきましょう!まずは、必要なライブラリをインポートします。tkinterモジュールから必要な機能を取り込むためのコードを記述します。

import tkinter as tk
from tkinter import messagebox
import os

import tkinter as tk は、Pythonの標準ライブラリであるtkinterをインポートしてtkという別名でインポートします。これにより、tkinterモジュールの関数やクラスを呼び出す際に、本来ならtkinter.Tk()のように書かなければいけない所を、tk.Tk()のように短いコードで書くことができ、コードの可読性を向上させることができます。

from tkinter import messagebox は、tkinterモジュールからmessageboxというサブモジュール(モジュールの一部)をインポートする文です。下記のコードで画像のようなメッセージボックスが表示できるようになります。

messagebox.showinfo("メモ", "メモが保存されました。")  # 保存完了のメッセージボックスを表示

import os は、Pythonの標準ライブラリであるosをインポートする文です。

osをインポートすることで、ファイルやディレクトリの作成、削除、移動、存在の確認など、様々なOS操作を行うことができます。

そして今回のコードの全貌は以下となります。このコードをコピーしていただいて、アプリを起動していただければとりあえずは動きます。

コードの全貌

import tkinter as tk
from tkinter import messagebox
import os

# メモを保存する関数
def save_note():
    note = text.get("1.0", "end-1c") # テキスト入力エリアの内容を取得
    if note:
        with open("notes.txt", "w") as file:  # ファイルを上書きモードで開く(存在しない場合は新規作成)
            file.write(note)  # メモをファイルに書き込む
        messagebox.showinfo("メモ", "メモが保存されました。")  # 保存完了のメッセージボックスを表示

def clear_note():
    text.delete("1.0", "end")  # テキスト入力エリアをクリア

def open_notes():
    if not os.path.exists("notes.txt"):  # ファイルが存在しない場合は新規作成
        with open("notes.txt", "w"):
            pass
    with open("notes.txt", "r") as file:
        notes = file.read()  # ファイルの内容を読み込む
    text.delete("1.0", "end")  # テキスト入力エリアをクリア
    text.insert("1.0", notes)  # メモをテキスト入力エリアに表示

# メインウィンドウの作成
window = tk.Tk()
window.title("メモアプリ")  # ウィンドウのタイトルを設定

# ウィンドウの幅と高さを指定
window.geometry("400x360")

# フレーム1の作成(テキスト入力エリアの上にスペースを空けるため)
frame1 = tk.Frame(window)
frame1.pack(pady=10)

# テキスト入力エリアの作成
text = tk.Text(frame1, height=20, width=50)
text.pack()

# notes.txtの内容を表示
open_notes()

# ボタンフレームの作成
button_frame = tk.Frame(window)
button_frame.pack()

# 保存ボタンの作成
save_button = tk.Button(button_frame, text="保存", command=save_note)
save_button.pack(side="left", padx=5, pady=20)

# 削除ボタンの作成
clear_button = tk.Button(button_frame, text="削除", command=clear_note)
clear_button.pack(side="left", padx=5, pady=20)

# メインループの開始
window.mainloop()

関数の解説

save_note関数で、テキスト入力エリアの内容を取得し、ファイルに保存します。保存が完了したら、メッセージボックスを表示して保存が成功したことを伝えます。

clear_note関数で、テキスト入力エリアの内容をすべて削除します。

open_notes関数で、事前に作成した”notes.txt”というファイルが存在するかを確認し、存在しない場合は新規に作成します。その後、ファイルの内容を読み込み、テキスト入力エリアに表示します。

GUI作成の解説

次にGUIを作成する部分について解説をしていきます。GUIは以下のコードで作成して配置しています。

# メインウィンドウの作成
window = tk.Tk()
window.title("メモアプリ")  # ウィンドウのタイトルを設定

# ウィンドウの幅と高さを指定
window.geometry("400x360")

# フレーム1の作成(テキスト入力エリアの上にスペースを空けるため)
frame1 = tk.Frame(window)
frame1.pack(pady=10)

# テキスト入力エリアの作成
text = tk.Text(frame1, height=20, width=50)
text.pack()

# notes.txtの内容を表示
open_notes()

# ボタンフレームの作成
button_frame = tk.Frame(window)
button_frame.pack()

# 保存ボタンの作成
save_button = tk.Button(button_frame, text="保存", command=save_note)
save_button.pack(side="left", padx=5, pady=20)

# 削除ボタンの作成
clear_button = tk.Button(button_frame, text="削除", command=clear_note)
clear_button.pack(side="left", padx=5, pady=20)

# メインループの開始
window.mainloop()

イメージとしては、windowを作り、必要に応じてframeを作り、frameの中に入力エリアやボタンを配置するというイメージです。

例えば、save_button = tk.Button(button_frame, text=”保存”, command=save_note) は、button_frameの中に配置するボタンを作成する処理ですがこのコードだけでは作成しかしていないのでGUI上には表示されません。
save_button.pack(side=”left”, padx=5, pady=20) で配置位置を決めたところで初めて、GUI上にボタンが表示されます。

コード内で使用しているtkinterのメソッドの説明

  1. pack(pady=10) – 要素をウィンドウに配置します。padyパラメータは、要素の上下の余白を指定します。
  2. Text(frame1, height=20, width=50) – テキスト入力エリアを作成します。frame1内に配置され、heightとwidthで高さと幅を指定します。
  3. text.pack() – テキスト入力エリアをウィンドウに配置します。
  4. open_notes() – notes.txtファイルの内容を読み込み、テキスト入力エリアに表示します。
  5. Button(button_frame, text="保存", command=save_note) – ボタンを作成します。button_frame内に配置され、表示されるテキストは「保存」です。commandパラメータは、ボタンがクリックされたときに実行される関数を指定します。
  6. save_button.pack(side="left", padx=5, pady=20) – 保存ボタンをウィンドウに配置します。sideパラメータは、要素が配置される位置を指定します。padxとpadyは、ボタンの周囲の余白を指定します。
  7. Button(button_frame, text="削除", command=clear_note) – 削除ボタンを作成します。テキストが「削除」と表示され、クリックされたときにclear_note関数が実行されます。
  8. clear_button.pack(side="left", padx=5, pady=20) – 削除ボタンをウィンドウに配置します。
  9. window.mainloop() – ウィンドウを表示し、イベントループを開始します。これにより、ウィンドウが表示された状態でユーザーの操作を待ちます。

おまけ

いかがでしたでしょうか。PythonでGUIを作成する時にTkinterを使用する方は多くいらっしゃるみたいです。

業務や作業でちょっと効率化できるアプリを作りたい時に、Tkinterは簡潔で分かりやすくコードを書けるのでおすすめです!

これを機会にTkinterを勉強してみるのもいいと思います。ブログを参考にするのも良し、ChatGPTに聞くのも良しで今は誰かに教えてもらわなくても効率的に習得していけると思います。

もちろん、ブログやChatGPTにも間違いがあったり情報が古くなっていたりというケースもあるのでセカンドオピニオン的に色んな所から情報を得て、自分で取捨選択できる能力を鍛えておくといいと思いますよ!

それでは、また!

PC プログラミング
python プログラミング
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • Excel 2013 印刷範囲を1ページにまとめる方法
  • PythonのTkinterのpady・padxで上下左右で異なる余白量を設定する

この記事を書いた人

くじらいどのアバター くじらいど

アラサー社会不適合者のくじらいどです。

普段は、youtubeで動画投稿やこのサイトでブログ投稿をしています。

喘息、アトピー、鼻炎持ち
教育失敗の世間知らず

自分にできることをやるだけ

関連記事

  • Google Chrome 最新バージョンに更新する方法
    2024年11月17日
  • Google Chromeで動作が遅くなる原因と対処法
    2024年10月18日
  • Googleドライブの容量を節約する方法とは?
    2024年10月16日
  • 無料で便利!定番オンラインバックアップサービス5選
    2024年10月16日
  • Windows 10 隠しファイルを表示する簡単な方法
    2024年10月15日
  • Microsoft Edgeのフィードを非表示にする方法、背景画像の変更方法、テーマ設定方法
    2024年10月11日
  • Windows10 で既定のアプリを変更する方法
    2024年10月11日
  • Windows 10 ファイルの拡張子を表示させる方法
    2024年10月9日

コメント

コメントする コメントをキャンセル

CAPTCHA

最近の投稿

  • くじランドに遊びに来てね!【くじランド】
  • ぬらりひょんとは? わしが解説する【くじランド】
  • チャンネル登録者数10人を達成しました!
  • チャンネル登録者数1人を達成しました!
  • Youtube投稿始めました!

最近のコメント

  1. 深夜セルフガソリンスタンド監視アルバイトの当たり現場と外れ現場 に Chet Garfinkel より
  2. Google Apps Script (GAS) 初回実行時のアクセス権限の承認方法 に くじらいど より
  3. Google Apps Script (GAS) 初回実行時のアクセス権限の承認方法 に tlover tonet より
  4. Google Chromeのホーム画面の背景を変更する方法(好きな画像に変更) に くじらいど より
  5. Google Apps Script (GAS) シートの値を削除する方法 に くじらいど より

アーカイブ

  • 2025年3月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2023年7月
  • 2023年6月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月

カテゴリー

  • PC
  • お知らせ
  • デザイン
  • プログラミング
  • 体験談
  • 日常
くじらいど
社会不適合者 / 趣味クリエイター
アラサー社会不適合者のくじらいどです。

普段は、youtubeで動画投稿やこのサイトでブログ投稿をしています。

喘息、アトピー、鼻炎持ち
教育失敗の世間知らず

自分にできることをやるだけ

プロフィール
目次
  • X
  • YouTube
  • Mail
  • 運営者情報
  • プライバシーポリシー
  • お問い合わせ

© くじらいどブログ.

  • メニュー
  • 検索
  • 目次
  • トップへ
目次