一 代码
import tkinter from PIL import Image app = tkinter.Tk() app.title('My Paint----by cakin24') app['width'] = 800 app['height'] = 600 #控制是否允许画图的变量,1:允许,0:不允许 yesno = tkinter.IntVar(value=0) #控制画图类型的变量,1:曲线,2:直线,3:矩形,4:文本,5:橡皮 what = tkinter.IntVar(value=1) #记录鼠标位置的变量 X = tkinter.IntVar(value=0) Y = tkinter.IntVar(value=0) #前景色 foreColor = '#000000' backColor = '#FFFFFF' #创建画布 image = tkinter.PhotoImage() canvas = tkinter.Canvas(app, bg='white', width=800, height=600) canvas.create_image(800, 600, image=image) #鼠标左键单击,允许画图 def onLeftButtonDown(event): yesno.set(1) X.set(event.x) Y.set(event.y) if what.get()==4: canvas.create_text(event.x, event.y, text=text) canvas.bind('<Button-1>', onLeftButtonDown) #记录最后绘制图形的id lastDraw = 0 #按住鼠标左键移动,画图 def onLeftButtonMove(event): global lastDraw if yesno.get()==0: return if what.get()==1: #使用当前选择的前景色绘制曲线 canvas.create_line(X.get(), Y.get(), event.x, event.y, fill=foreColor) X.set(event.x) Y.set(event.y) elif what.get()==2: #绘制直线,先删除刚刚画过的直线,再画一条新的直线 #global lastDraw try: canvas.delete(lastDraw) except Exception as e: pass lastDraw = canvas.create_line(X.get(), Y.get(), event.x, event.y, fill=foreColor) elif what.get()==3: #绘制矩形,先删除刚刚画过的矩形,再画一个新的矩形 #global lastDraw try: canvas.delete(lastDraw) except Exception as e: pass lastDraw = canvas.create_rectangle(X.get(), Y.get(), event.x, event.y, fill=backColor, outline=foreColor) elif what.get()==5: #橡皮,使用背景色填充10*10的矩形区域 canvas.create_rectangle(event.x-5, event.y-5, event.x+5, event.y+5, outline=backColor, fill=backColor) canvas.bind('<B1-Motion>', onLeftButtonMove) #鼠标左键抬起,不允许画图 def onLeftButtonUp(event): if what.get()==2: #绘制直线 canvas.create_line(X.get(), Y.get(), event.x, event.y, fill=foreColor) elif what.get()==3: #绘制矩形 canvas.create_rectangle(X.get(), Y.get(), event.x, event.y, fill=backColor, outline=foreColor) yesno.set(0) global lastDraw lastDraw = 0 canvas.bind('<ButtonRelease-1>', onLeftButtonUp) #创建菜单 menu = tkinter.Menu(app, tearoff=0) #打开图像文件 def Open(): filename = tkinter.filedialog.askopenfilename(title='Open Image', filetypes=[('image', '*.jpg *.png *.gif')]) if filename: global image image = tkinter.PhotoImage(file=filename) canvas.create_image(80, 80, image=image) menu.add_command(label='Open', command=Open) #添加菜单,清除 def Clear(): for item in canvas.find_all(): canvas.delete(item) menu.add_command(label='Clear', command=Clear) #添加分割线 menu.add_separator() #创建子菜单,用来选择绘图类型 menuType = tkinter.Menu(menu, tearoff=0) def drawCurve(): what.set(1) print(what.get()) menuType.add_command(label='Curve', command=drawCurve) def drawLine(): what.set(2) menuType.add_command(label='Line', command=drawLine) def drawRectangle(): what.set(3) menuType.add_command(label='Rectangle', command=drawRectangle) def drawText(): global text text = tkinter.simpledialog.askstring(title='Input what you want to draw', prompt='') what.set(4) menuType.add_command(label='Text', command=drawText) menuType.add_separator() #选择前景色 def chooseForeColor(): global foreColor foreColor = tkinter.colorchooser.askcolor()[1] menuType.add_command(label='Choose Foreground Color', command=chooseForeColor) #选择背景色 def chooseBackColor(): global backColor backColor = tkinter.colorchooser.askcolor()[1] menuType.add_command(label='Choose Background Color', command=chooseBackColor) #橡皮 def onErase(): what.set(5) menuType.add_command(label='Erase', command=onErase) menu.add_cascade(label='Type', menu=menuType) #鼠标右键抬起,弹出菜单 def onRightButtonUp(event): menu.post(event.x_root, event.y_root) canvas.bind('<ButtonRelease-3>', onRightButtonUp) canvas.pack(fill=tkinter.BOTH, expand=tkinter.YES) app.mainloop()
二 运行结果
相关推荐
在这里,我们将使用 Tkinter 实现一个简单的画图小程序。这个小程序允许用户绘制各种图形,例如线条、矩形、椭圆、文本等。用户可以选择不同的绘制工具和颜色,并且可以保存绘制的图形。 Tkinter 的主要组件包括: ...
Tkinter支持显示和处理简单的图像,如`.gif`和`.pbm`格式,通过`PhotoImage`类实现。 7. **模块`ttk`(Themed Tk)**: ttk模块提供了风格化的控件,使得Tkinter的外观更符合现代桌面环境,如Windows Aero或macOS...
在本文中,作者可能分享了如何利用特定的编程语言(如Python的Tkinter库,Java的Swing或AWT,或者是C#的Windows Forms等)创建一个简易的画图板应用,并实现保存用户在画板上绘制的图像的功能。 首先,我们需要理解...
这个项目是一个简易的聊天程序,它不仅支持基本的文字交流,还具有画图功能,使得用户可以在聊天过程中进行简单的图像创作和分享。这样的设计使得通信更具趣味性和互动性,类似于知名的即时通讯软件QQ。 在聊天程序...
在这个简易画图板中,GUI可能包括一个画布区域,用户可以在此处绘制,以及工具栏,提供不同的画笔、橡皮擦、颜色选择等功能。 2. **事件处理**:当用户在画图板上进行操作时,比如点击鼠标或移动鼠标,程序需要捕获...
简易画图工具(Python),供大家参考,具体内容如下 小黑最近在努力的入门python,正好学习到了Python的tkinker模块下的Canvas(画布)和Button(按钮)再加上相应的事务管理,实现了一个简单的画图小工具。 程序代码 #...
1. **图形库**:例如,Python中的matplotlib用于科学可视化,tkinter则更适合简单的GUI应用;JavaFX提供了丰富的图形功能;C#的WPF提供了强大的绘图和布局管理;JavaScript的HTML5 Canvas是网页上进行动态画图的好...
在IT领域,"画图功能的基本实现程序"通常是指创建一个简单图形用户界面(GUI)应用程序,让用户能够绘制基础形状,如矩形、椭圆和直线。这些功能在教育、设计、原型制作等多个场景中都有广泛应用。下面我们将深入...
该画图程序是一个基本的图形用户界面应用,旨在提供一种简单的方式来绘制和编辑几何形状。以下是一些关于这个程序及其功能的关键知识点: 1. **基本图形绘制**:程序支持画线、直线、矩形、多边形、圆和椭圆等基本...
Windows画图程序是我们日常生活中常见的一款简单图像编辑工具,其简洁的操作界面和基础的绘图功能深受用户喜爱。特别是它的放大与缩小功能,让我们在处理图像时能够更加细致地观察每一个细节。本文将深入探讨如何...
在TCL/TK中画图主要通过`create`命令实现,例如,我们可以画一条线: ```tcl .canvas create line 50 50 200 200 -fill "blue" ``` 这将在画布上从(50, 50)到(200, 200)的位置绘制一条蓝色的线。 对于更复杂的...
该程序可能使用了Python的标准库如Tkinter或者第三方库如matplotlib来实现画图功能。 Tkinter是Python的默认GUI库,提供了一种简单易用的方式来创建交互式的图形界面。在源码中,我们可能会看到如何创建窗口、添加...
Tkinter的使用不仅限于画图,还可以构建各种类型的桌面应用程序,如计算器、文件浏览器、简单的游戏等。通过tkpaint,开发者可以深入理解Tkinter的基本原理,以及如何利用Canvas组件来实现复杂的图形用户界面。这个...
标题 "很好用的简单的画图软件源码" 暗示了这是一个关于开发简单图形绘制应用的编程项目。描述中提到的功能包括画圆、画线和画矩形,这些都是基本的几何图形绘制操作,通常在计算机图形学或基础绘图应用中会遇到。这...
标题中的"llk.rar_画图板"表明这是一个与画图相关的软件或程序,很可能是一个简易版的图形编辑工具,用户可以通过它进行简单的绘画创作。这个名称中的".rar"是常见的压缩文件格式,意味着里面包含了该画图板的源代码...
在本项目中,我们探索的是一个简易的"画图板代码"实现,它允许用户绘制直线、矩形和椭圆。这个基础的图形界面应用程序旨在提供一个简单的平台,让用户能够进行基本的图形创作。我们将深入讨论这个画图板的核心功能和...
### 使用Python与Pygame开发简易画图板程序 #### 一、引言 在现代编程教育中,Python因其简洁易懂的语法而受到广泛欢迎。本文将详细介绍如何使用Python及Pygame库创建一个简易画图板程序。Pygame是Python的一个...