Python教你做操作系统,不用第三方库

Python教你做操作系统,不用第三方库

这绝对是一个对你帮助很大的文章。这篇文章将手把手教你用Python编写一个操作系统,最震撼的当属它不用第三方库

1.创建窗口

这步将让你可以在一个窗口上显示操作系统,让他不会成为MS-DOS那样的文字系统

import tkinter as tk

import time

2.备忘录功能

可以让你拥有一个属于自己的备忘录(记得每次编辑完后按保存)

class TextEditor:

def __init__(self,root):

self.root = root

self.T = tk.Text(root, height=10, width=50)

self.T.pack()

self.save_button = tk.Button(root, text="保存", command=self.save_text)

self.save_button.pack()

self.load_button = tk.Button(root, text="读取", command=self.load_text)

self.load_button.pack()

def save_text(self):

with open("saved.txt", "w") as f:

f.write(self.T.get("1.0", "end"))

def load_text(self):

with open("saved.txt", "r") as f:

self.T.delete("1.0", "end")

self.T.insert("1.0", f.read())

3.计算器功能

我这里只弄了加法和减法,想要其它运算可以自己开发

class Calculator:

def __init__(self,root):

self.root = root

self.result_label = tk.Label(root, text="结果: ")

self.result_label.pack()

self.num1_entry = tk.Entry(root)

self.num1_entry.pack()

self.num2_entry = tk.Entry(root)

self.num2_entry.pack()

self.add_button = tk.Button(root, text="加", command=self.add_nums)

self.add_button.pack()

self.subtract_button = tk.Button(root, text="减", command=self.subtract_nums)

self.subtract_button.pack()

def add_nums(self):

num1 = float(self.num1_entry.get())

num2 = float(self.num2_entry.get())

result = num1 + num2

self.result_label.config(text="结果: " + str(result))

def subtract_nums(self):

num1 = float(self.num1_entry.get())

num2 = float(self.num2_entry.get())

result = num1 - num2

self.result_label.config(text="结果: " + str(result))

class Clock:

def __init__(self,root):

self.root = root

self.time_label = tk.Label(root, text="")

self.time_label.pack()

self.update_clock()

def update_clock(self):

current_time = time.strftime("%H:%M:%S")

self.time_label.config(text=current_time)

self.time_label.after(1000, self.update_clock)

4.存储器功能

类似于游戏中的一个存档码对应一个存档,一个代码对应一个信息

SaveInfo:

def __init__(self,root):

self.root = root

self.info_label = tk.Label(root, text="输入信息:")

self.info_label.pack()

self.info_entry = tk.Entry(root)

self.info_entry.pack()

self.code_label = tk.Label(root, text="输入代码:")

self.code_label.pack()

self.code_entry = tk.Entry(root)

self.code_entry.pack()

self.save_button = tk.Button(root, text="保存", command=self.save_info)

self.save_button.pack()

self.load_button = tk.Button(root, text="读取", command=self.load_info)

self.load_button.pack()

def save_info(self):

info = self.info_entry.get()

code = self.code_entry.get()

with open(f"{code}.txt", "w") as f:

f.write(info)

self.info_entry.delete(0, "end")

self.code_entry.delete(0, "end")

def load_info(self):

code = self.code_entry.get()

try:

with open(f"{code}.txt", "r") as f:

info = f.read()

self.info_entry.delete(0, "end")

self.info_entry.insert(0, info)

except FileNotFoundError:

self.info_entry.delete(0, "end")

self.info_entry.insert(0, "未找到代码")

5.命名窗口

命名你的窗口,可以自己修改

if __name__ == "__main__":

root = tk.Tk()

root.title("新文本系统")

text_editor = TextEditor(root)

calculator = Calculator(root)

clock = Clock(root)

save_info = SaveInfo(root)

root.mainloop()

由此可知,代码是

import tkinter as tk

import time

class TextEditor:

def __init__(self,root):

self.root = root

self.T = tk.Text(root, height=10, width=50)

self.T.pack()

self.save_button = tk.Button(root, text="保存", command=self.save_text)

self.save_button.pack()

self.load_button = tk.Button(root, text="读取", command=self.load_text)

self.load_button.pack()

def save_text(self):

with open("saved.txt", "w") as f:

f.write(self.T.get("1.0", "end"))

def load_text(self):

with open("saved.txt", "r") as f:

self.T.delete("1.0", "end")

self.T.insert("1.0", f.read())

class Calculator:

def __init__(self,root):

self.root = root

self.result_label = tk.Label(root, text="结果: ")

self.result_label.pack()

self.num1_entry = tk.Entry(root)

self.num1_entry.pack()

self.num2_entry = tk.Entry(root)

self.num2_entry.pack()

self.add_button = tk.Button(root, text="加", command=self.add_nums)

self.add_button.pack()

self.subtract_button = tk.Button(root, text="减", command=self.subtract_nums)

self.subtract_button.pack()

def add_nums(self):

num1 = float(self.num1_entry.get())

num2 = float(self.num2_entry.get())

result = num1 + num2

self.result_label.config(text="结果: " + str(result))

def subtract_nums(self):

num1 = float(self.num1_entry.get())

num2 = float(self.num2_entry.get())

result = num1 - num2

self.result_label.config(text="结果: " + str(result))

class Clock:

def __init__(self,root):

self.root = root

self.time_label = tk.Label(root, text="")

self.time_label.pack()

self.update_clock()

def update_clock(self):

current_time = time.strftime("%H:%M:%S")

self.time_label.config(text=current_time)

self.time_label.after(1000, self.update_clock)

class SaveInfo:

def __init__(self,root):

self.root = root

self.info_label = tk.Label(root, text="输入信息:")

self.info_label.pack()

self.info_entry = tk.Entry(root)

self.info_entry.pack()

self.code_label = tk.Label(root, text="输入代码:")

self.code_label.pack()

self.code_entry = tk.Entry(root)

self.code_entry.pack()

self.save_button = tk.Button(root, text="保存", command=self.save_info)

self.save_button.pack()

self.load_button = tk.Button(root, text="读取", command=self.load_info)

self.load_button.pack()

def save_info(self):

info = self.info_entry.get()

code = self.code_entry.get()

with open(f"{code}.txt", "w") as f:

f.write(info)

self.info_entry.delete(0, "end")

self.code_entry.delete(0, "end")

def load_info(self):

code = self.code_entry.get()

try:

with open(f"{code}.txt", "r") as f:

info = f.read()

self.info_entry.delete(0, "end")

self.info_entry.insert(0, info)

except FileNotFoundError:

self.info_entry.delete(0, "end")

self.info_entry.insert(0, "未找到代码")

if __name__ == "__main__":

root = tk.Tk()

root.title("新文本系统")

text_editor = TextEditor(root)

calculator = Calculator(root)

clock = Clock(root)

save_info = SaveInfo(root)

root.mainloop()

记得把这个程序放到单独一个文件夹中

相关推荐

翊的成语
【方法】Word文档如何设置密码?
设计师回复DK蓝贴:DK腿短源自于WOW历史
格力空调e享舒适是几度