Python

シンプルなPythonメモ帳アプリの作成(ChatGPTを使用)

ChatGPTを使用してメモ帳アプリを作りました。

PythonとTkinterを使って、シンプルなメモ帳アプリを作成します。このアプリでは、メモの作成・編集・保存・読み込みが可能です。

プログラミング初心者でも理解できるように、各ファイルやコードをわかりやすく解説します。

プロジェクトの構成

まず、プロジェクトのファイル構成を見てみましょう。この構成に従って、ファイルを作成していきます。

mySimpleNoteApp/
├── src/
│   ├── main.py                # アプリケーションのエントリーポイント
│   ├── ui.py                  # ユーザーインターフェースのロジックを担当
│   ├── note_manager.py        # メモの作成、保存、編集、検索などのロジックを担当
└── README.md                  # プロジェクトの概要と使用方法のドキュメント

各ファイルの役割

  • main.py: アプリの起動とメインループを管理します。
  • ui.py: Tkinterを使ったユーザーインターフェースの設計と動作を定義します。
  • note_manager.py: メモの保存と読み込みの機能を提供します。

コードの詳細

1. main.py

まずは、main.py から見ていきます。ここではアプリケーションの起動に必要な準備を行います。

from ui import SimpleNoteApp

if __name__ == "__main__":
    app = SimpleNoteApp()
    app.run()
  • from ui import SimpleNoteApp: ui.py から SimpleNoteApp クラスをインポートしています。
  • if __name__ == "__main__":: このファイルが直接実行されたときに、アプリケーションを起動するためのコードです。
  • app.run(): アプリケーションのメインループを開始します。

2. ui.py

次に、ユーザーインターフェースを構築する ui.py です。ここでは、Tkinterを使ってウィンドウやメニューを作成し、ユーザーからの入力に応じて動作を行います。

import tkinter as tk
from tkinter import filedialog, messagebox
from note_manager import NoteManager

class SimpleNoteApp:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("Simple Note App")
        self.note_manager = NoteManager()

        self.text_area = tk.Text(self.root, wrap='word')
        self.text_area.pack(expand=True, fill='both')

        self.create_menu()

    def create_menu(self):
        menu_bar = tk.Menu(self.root)
        file_menu = tk.Menu(menu_bar, tearoff=0)
        
        file_menu.add_command(label="New", command=self.new_note)
        file_menu.add_command(label="Open", command=self.open_note)
        file_menu.add_command(label="Save", command=self.save_note)
        file_menu.add_separator()
        file_menu.add_command(label="Exit", command=self.root.quit)

        menu_bar.add_cascade(label="File", menu=file_menu)
        self.root.config(menu=menu_bar)

    def new_note(self):
        self.text_area.delete(1.0, tk.END)

    def open_note(self):
        file_path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt")])
        if file_path:
            content = self.note_manager.load_note(file_path)
            self.text_area.delete(1.0, tk.END)
            self.text_area.insert(tk.END, content)

    def save_note(self):
        file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt")])
        if file_path:
            content = self.text_area.get(1.0, tk.END)
            self.note_manager.save_note(file_path, content)
            messagebox.showinfo("Save", "Note saved successfully!")

    def run(self):
        self.root.mainloop()

主な機能の説明

  • __init__ メソッド: アプリケーションのウィンドウを初期化し、メニューとテキストエリアを作成します。
  • create_menu メソッド: メニューを作成し、「New」「Open」「Save」「Exit」などの機能を追加します。
  • new_note メソッド: 新しいメモを作成(テキストエリアをクリア)します。
  • open_note メソッド: ファイルダイアログを開いて .txt ファイルを選択し、その内容を読み込んでテキストエリアに表示します。
  • save_note メソッド: 現在のメモを .txt ファイルとして保存します。
  • run メソッド: アプリケーションのメインループを実行します。

3. note_manager.py

最後に、メモの保存と読み込みを担当する note_manager.py を見ていきます。

class NoteManager:
    def load_note(self, file_path):
        with open(file_path, 'r', encoding='utf-8') as file:
            return file.read()

    def save_note(self, file_path, content):
        with open(file_path, 'w', encoding='utf-8') as file:
            file.write(content)

主な機能の説明

  • load_note メソッド: 指定されたファイルパスからテキストデータを読み込み、文字列として返します。
  • save_note メソッド: 指定されたファイルパスにテキストデータを保存します。

アプリケーションの実行

すべてのファイルが揃ったら、以下の手順でアプリケーションを実行できます。

  1. コマンドプロンプトまたはターミナルを開きます。
  2. プロジェクトのディレクトリに移動します。
cd D:\ChatGPT作成物\mySimpleNoteApp\src

3.次のコマンドを実行して、アプリケーションを起動します。

python main.py

れで、シンプルなメモ帳アプリが起動し、メモの作成・編集・保存・読み込みが可能になります。

まとめ

このシンプルなメモ帳アプリは、PythonとTkinterを使って、基本的なテキスト編集機能を持つアプリケーションを構築するための良い練習になります。さらに機能を拡張したり、UIをカスタマイズしたりして、オリジナルのアプリケーションを作成することも可能です。ぜひ、いろいろと試してみてください!

-Python