用python生成一个智能画板,画板模糊且透明,可在画板上用鼠标画画,可保存画板,读取画板,关闭画板,最小化画板
时间: 2024-02-28 16:31:28 浏览: 75
好的,我可以为您提供一个简单的智能画板的实现代码,但因为涉及到图形界面的操作,需要使用Python的GUI库,我建议使用Tkinter库来实现:
```python
from tkinter import *
from tkinter import filedialog, messagebox
class SmartCanvas:
def __init__(self, master):
self.master = master
self.master.title("智能画板")
self.master.geometry("400x400")
self.master.protocol("WM_DELETE_WINDOW", self.close)
self.master.iconbitmap("icon.ico")
self.master.attributes('-alpha', 0.9)
self.canvas = Canvas(self.master, bg="white")
self.canvas.pack(fill=BOTH, expand=YES)
self.old_x = None
self.old_y = None
self.color = "black"
self.width = 5
self.canvas.bind("<B1-Motion>", self.paint)
self.canvas.bind("<ButtonRelease-1>", self.reset)
menubar = Menu(self.master)
self.master.config(menu=menubar)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="保存", command=self.save)
filemenu.add_command(label="打开", command=self.open)
menubar.add_cascade(label="文件", menu=filemenu)
def paint(self, event):
if self.old_x and self.old_y:
self.canvas.create_line(self.old_x, self.old_y, event.x, event.y,
width=self.width, fill=self.color, capstyle=ROUND, smooth=True)
self.old_x = event.x
self.old_y = event.y
def reset(self, event):
self.old_x, self.old_y = None, None
def save(self):
filename = filedialog.asksaveasfilename(defaultextension=".png")
if filename:
try:
self.canvas.postscript(file=filename + '.eps')
messagebox.showinfo("保存成功", "文件已保存")
except:
messagebox.showerror("保存失败", "文件保存失败")
def open(self):
filename = filedialog.askopenfilename(defaultextension=".png")
if filename:
try:
img = PhotoImage(file=filename)
self.canvas.create_image(0, 0, anchor=NW, image=img)
except:
messagebox.showerror("打开失败", "文件打开失败")
def close(self):
if messagebox.askyesno("退出", "确定要退出吗?"):
self.master.destroy()
if __name__ == "__main__":
root = Tk()
app = SmartCanvas(root)
root.mainloop()
```
这个程序使用了Tkinter库来实现一个简单的画板,您可以在画板上使用鼠标进行画图。该程序还提供了保存、打开、关闭等功能。如果您需要进行更多的定制化操作,可以自行修改代码。
阅读全文