pythonで作るOS ちゃっぴーが送ってくれたプログラム
import tkinter as tkfrom tkinter import messageboximport datetimeimport osclass KanameOS: def __init__(self, root): self.root = root root.title("KanameOS") root.geometry("800x500") root.configure(bg="#008080") # タイトル title = tk.Label( root, text="KanameOS Desktop", font=("Consolas", 20), bg="#000080", fg="white" ) title.pack(fill="x") # 時計 self.clock = tk.Label( root, font=("Consolas", 14), bg="#008080", fg="white" ) self.clock.pack() self.update_clock() # アプリボタン frame = tk.Frame( root, bg="#008080" ) frame.pack(pady=40) tk.Button( frame, text="📝 Memo", width=15, height=3, command=self.memo ).grid(row=0,column=0,padx=10) tk.Button( frame, text="🧮 Calculator", width=15, height=3, command=self.calc ).grid(row=0,column=1,padx=10) tk.Button( frame, text="💻 Terminal", width=15, height=3, command=self.terminal ).grid(row=0,column=2,padx=10) tk.Button( frame, text="Power Off", width=15, height=3, command=root.destroy ).grid(row=1,column=1,pady=20) def update_clock(self): now=datetime.datetime.now() self.clock.config( text=now.strftime( "%Y/%m/%d %H:%M:%S" ) ) self.root.after( 1000, self.update_clock ) def memo(self): win=tk.Toplevel() win.title("Memo") win.geometry("400x300") text=tk.Text(win) text.pack( expand=True, fill="both" ) def save(): with open( "memo.txt", "w", encoding="utf-8" ) as f: f.write( text.get("1.0","end") ) messagebox.showinfo( "Memo", "Saved" ) tk.Button( win, text="Save", command=save ).pack() def calc(self): win=tk.Toplevel() win.title("Calculator") entry=tk.Entry(win) entry.pack() result=tk.Label(win) result.pack() def run(): try: result.config( text=str( eval(entry.get()) ) ) except: result.config( text="ERROR" ) tk.Button( win, text="=", command=run ).pack() def terminal(self): win=tk.Toplevel() win.title("Terminal") win.geometry("500x300") output=tk.Text( win, bg="black", fg="lime" ) output.pack( expand=True, fill="both" ) entry=tk.Entry(win) entry.pack(fill="x") def command(event=None): cmd=entry.get() output.insert( "end", "> "+cmd+"\n" ) if cmd=="help": output.insert( "end", "help time ls shutdown\n" ) elif cmd=="time": output.insert( "end", str(datetime.datetime.now()) +"\n" ) elif cmd=="ls": output.insert( "end", str(os.listdir()) +"\n" ) elif cmd=="shutdown": self.root.destroy() else: output.insert( "end", "Unknown command\n" ) entry.delete(0,"end") entry.bind( "<Return>", command )root=tk.Tk()os=KanameOS(root)root.mainloop()