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
メソッド: 指定されたファイルパスにテキストデータを保存します。
アプリケーションの実行
すべてのファイルが揃ったら、以下の手順でアプリケーションを実行できます。
- コマンドプロンプトまたはターミナルを開きます。
- プロジェクトのディレクトリに移動します。
cd D:\ChatGPT作成物\mySimpleNoteApp\src
3.次のコマンドを実行して、アプリケーションを起動します。
python main.py
れで、シンプルなメモ帳アプリが起動し、メモの作成・編集・保存・読み込みが可能になります。
まとめ
このシンプルなメモ帳アプリは、PythonとTkinterを使って、基本的なテキスト編集機能を持つアプリケーションを構築するための良い練習になります。さらに機能を拡張したり、UIをカスタマイズしたりして、オリジナルのアプリケーションを作成することも可能です。ぜひ、いろいろと試してみてください!