```python
from tkinter import *
from tkinter.filedialog import asksaveasfilename, askopenfilename

current_file = None

def new_file():
    global current_file
    current_file = None
    text.delete(1.0, END)

def open_file():
    global current_file
    filepath = askopenfilename(defaultextension='.txt',
                               filetypes=[('Text Files', '*.txt'),
                                          ('All Files', '*.*')])
    if not filepath:
        return
    current_file = filepath
    text.delete(1.0, END)
    with open(filepath, 'r') as file:
        text.insert(INSERT, file.read())

def save_file():
    global current_file
    if not current_file:
        filepath = asksaveasfilename(defaultextension='.txt',
                                     filetypes=[('Text Files', '*.txt'),
                                                ('All Files', '*.*')])
        if not filepath:
            return
        current_file = filepath
    with open(current_file, 'w') as file:
        file.write(text.get(1.0, END))

def exit_app():
    root.quit()

def undo():
    text.edit_undo()

def redo():
    text.edit_redo()

root = Tk()
root.title('Notepad')

menu_bar = Menu(root)
root.config(menu=menu_bar)

file_menu = Menu(menu_bar, tearoff=False)
menu_bar.add_cascade(label='File', menu=file_menu)
file_menu.add_command(label='New', command=new_file)
file_menu.add_command(label='Open', command=open_file)
file_menu.add_command(label='Save', command=save_file)
file_menu.add_separator()
file_menu.add_command(label='Exit', command=exit_app)

edit_menu = Menu(menu_bar, tearoff=False)
menu_bar.add_cascade(label='Edit', menu=edit_menu)
edit_menu.add_command(label='Undo', command=undo)
edit_menu.add_command(label='Redo', command=redo)

text = Text(root)
text.pack(expand=True, fill=BOTH)

toolbar = Frame(root, bd=1, relief=RAISED)
undo_btn = Button(toolbar, text='Undo', command=undo)
undo_btn.pack(side=LEFT, padx=2, pady=2)
redo_btn = Button(toolbar, text='Redo', command=redo)
redo_btn.pack(side=LEFT, padx=2, pady=2)
toolbar.pack(side=TOP, fill=X)

root.mainloop()
```
This code creates a simple notepad app using the Tkinter library in Python. The app has a menu bar with options to create a new file, open an existing file, and save the current file. The text area of the app is implemented using a Text widget. The app supports both saving and opening files in the .txt format.
``` python จาก tkinter import * จาก tkinter.filedialog นำเข้า Asksaveasfilename, Askopenfilename current_file = ไม่มี def new_file (): global current_file current_file = ไม่มี text.delete (1.0, END) def open_file (): global current_file filepath = askopenfilename (defaultextension = '.txt', filetypes=[('Text Files', '*.txt'), ('All Files', '*.*')]) หากไม่ใช่ filepath: return current_file = filepath text.delete(1.0, END ) ด้วย open(filepath, 'r') เป็นไฟล์: text.insert(INSERT, file.read()) def save_file(): global current_file ถ้าไม่ใช่ current_file: filepath = asksaveasfilename(defaultextension='.txt', filetypes=[ ('Text Files', '*.txt'), ('All Files', '*.*')]) หากไม่ใช่ filepath: return current_file = filepath with open(current_file, 'w') as file: file.write (text.get(1.0, END)) def exit_app(): root.quit() def undo(): text.edit_undo() def ทำซ้ำ(): text.edit_redo() root = Tk() root.title(' Notepad') menu_bar = เมนู(root) root.config(menu=menu_bar) file_menu = เมนู(menu_bar, Tearoff=False) menu_bar.add_cascade(label='File', menu=file_menu) file_menu.add_command(label='New' , command=new_file) file_menu.add_command(label='Open', command=open_file) file_menu.add_command(label='Save', command=save_file) file_menu.add_separator() file_menu.add_command(label='Exit', command= exit_app) edit_menu = เมนู(menu_bar, การฉีกขาด=False) menu_bar.add_cascade(label='Edit', menu=edit_menu) edit_menu.add_command(label='Undo', command=undo) edit_menu.add_command(label='Redo', command=redo) text = ข้อความ(root) text.pack(expand=True, fill=BOTH) แถบเครื่องมือ = Frame(root, bd=1, Relief=RAISED) undo_btn = Button(แถบเครื่องมือ, text='Undo', command= เลิกทำ) undo_btn.pack(side=LEFT, padx=2, pady=2) redo_btn = Button(แถบเครื่องมือ, text='Redo', command=redo) redo_btn.pack(side=LEFT, padx=2, pady=2) toolbar.pack(side=TOP, fill=X) root.mainloop() ``` โค้ดนี้สร้างแอปสมุดบันทึกอย่างง่ายโดยใช้ไลบรารี Tkinter ใน Python แอพนี้มีแถบเมนูพร้อมตัวเลือกในการสร้างไฟล์ใหม่ เปิดไฟล์ที่มีอยู่ และบันทึกไฟล์ปัจจุบัน พื้นที่ข้อความของแอปถูกนำมาใช้โดยใช้วิดเจ็ตข้อความ แอปรองรับทั้งการบันทึกและการเปิดไฟล์ในรูปแบบ .txt
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence