티스토리 뷰

반응형

파이썬으로 구현한 간단한 메모장 프로그램 소스 예제입니다.

각자 코드를 다듬어서 좀 더 성능 좋은 메모장으로 만들어보세요.

import tkinter as tk
from tkinter import filedialog

class Notepad:
    def __init__(self, master):
        self.master = master
        self.filename = None
        self.text = tk.Text(self.master)
        self.text.pack(fill="both", expand=True)
        self.create_menu()

    def create_menu(self):
        menubar = tk.Menu(self.master)
        filemenu = tk.Menu(menubar, tearoff=0)
        filemenu.add_command(label="New", command=self.new_file)
        filemenu.add_command(label="Open", command=self.open_file)
        filemenu.add_command(label="Save", command=self.save_file)
        filemenu.add_command(label="Save As...", command=self.save_file_as)
        filemenu.add_separator()
        filemenu.add_command(label="Exit", command=self.master.quit)
        menubar.add_cascade(label="File", menu=filemenu)
        self.master.config(menu=menubar)

    def new_file(self):
        self.filename = None
        self.text.delete(1.0, tk.END)

    def open_file(self):
        filetypes = (("Text files", "*.txt"), ("All files", "*.*"))
        self.filename = filedialog.askopenfilename(filetypes=filetypes)
        if self.filename:
            with open(self.filename, "r") as f:
                text = f.read()
            self.text.delete(1.0, tk.END)
            self.text.insert(tk.END, text)

    def save_file(self):
        if self.filename:
            text = self.text.get(1.0, tk.END)
            with open(self.filename, "w") as f:
                f.write(text)
        else:
            self.save_file_as()

    def save_file_as(self):
        filetypes = (("Text files", "*.txt"), ("All files", "*.*"))
        self.filename = filedialog.asksaveasfilename(filetypes=filetypes)
        if self.filename:
            text = self.text.get(1.0, tk.END)
            with open(self.filename, "w") as f:
                f.write(text)

root = tk.Tk()
root.geometry("500x500")
root.title("Notepad")
notepad = Notepad(root)
root.mainloop()

 

실행결과:

 

이 코드는 Tkinter 모듈을 사용하여 메모장 프로그램용 그래픽 사용자 인터페이스(GUI)를 생성합니다.

이 프로그램을 통해 사용자는 파일을 텍스트 문서로 생성/열기/저장할 수 있습니다.

 

프로그램이 시작되면 상단에 메뉴 표시줄이 있는 빈 창이 생성됩니다. 메뉴 모음에는 New(새 파일 만들기), Open(기존 파일 열기), Save(현재 파일 저장), Save as...(현재 파일을 새 파일로 저장) 및 Exit(프로그램 종료) 옵션이 있는 "File(파일)" 메뉴가 있습니다.

 

세부 메뉴의 기능은 다음과 같습니다.

  • 사용자가 "New"를 선택하면 프로그램이 텍스트 영역을 지우고 파일 이름을 없음으로 설정합니다.
  • 사용자가 "Open"를 선택하면 프로그램은 사용자에게 파일을 선택하라는 메시지를 표시한 다음 파일 내용을 텍스트 영역에 로드합니다.
  • 사용자가 "Save"을 선택하면 프로그램은 텍스트 영역의 내용을 현재 파일에 저장합니다.
  • 사용자가 "Save as..."을 선택하면 프로그램은 사용자에게 새 파일을 선택하라는 메시지를 표시한 다음 텍스트 영역의 내용을 새 파일에 저장합니다.
  • 사용자가 "Exit"를 선택하면 프로그램을 종료합니다.

 

반응형
반응형
최근에 달린 댓글