简易画图工具(Python),供大家参考,具体内容如下
小黑最近在努力的入门python,正好学习到了python的tkinker模块下的帆布画(布)和按钮(按钮)再加上相应的事务管理,实现了一个简单的画图小工具。
程序代码
#画图软件的实现 从tkinter。filedialog进口* 从tkinter进口* 从tkinter。colorchooser进口* win_width=900 win_height=450 类应用程序(帧): def __init__(自我,掌握=None,背景=" # 000000 "): super () . __init__(主) self.master=主 self.bgcolor=告诉我们 self.x=0 self.y=0 self.fgcolor=" # ff0000 " 自我。lastDraw=0 #表示最后绘制的图形的id self.startDrawFlag=False self.pack () self.createWidget () def createWidget(自我): #创建画板 self.drawCad=画布(自我,宽度=win_width高度=win_height * 0.9, bg=self.bgcolor) self.drawCad.pack () #创建按钮 btn_start=按钮(自我、文本="开始”,name="开始") btn_start.pack(=白蟆?padx=10) btn_pen=按钮(自我、文本="画笔”,name="笔") btn_pen。包(=白蟆?padx=10) btn_rect=按钮(自我、文本="矩形”,name=熬匦巍? btn_rect。包(=白蟆?padx=10) btn_clear=按钮(自我、文本="清屏”,name=扒逦? btn_clear。包(=白蟆?padx=10) btn_earsor=按钮(自我、文本="橡皮擦”,name=" earsor ") btn_earsor。包(=白蟆?padx=10) btn_line=按钮(自我、文本="直线”,name="线") btn_line。包(=白蟆?padx=10) btn_lineArrow=按钮(自我、文本="箭头直线”,name=" lineArrow ") btn_lineArrow。包(=白蟆?padx=10) btn_color=按钮(自我、文本="颜色”,name="颜色") btn_color。包(=白蟆?padx=10) #为按钮绑定事件 btn_pen.bind_class(“按钮”,“& lt; 1祝辞self.eventManger) self.drawCad.bind (“& lt; ButtonRelease-1>”, self.stopDraw) def eventManger(自我、事件): name=event.widget.winfo_name () 打印(名称) 如果name==跋摺? self.drawCad.bind (“& lt; B1-Motion>”, self.myline) elif名称==發ineArrow”: self.drawCad.bind (“& lt; B1-Motion>”,self.mylineArrow) elif名称==熬匦巍? self.drawCad.bind (“& lt; B1-Motion>”,self.myRect) elif名称==氨省? self.drawCad.bind (“& lt; B1-Motion>”,self.myPen) elif名称==癳arsor”: self.drawCad.bind (“& lt; B1-Motion>”,self.myEarsor) elif名称==懊魅贰? self.drawCad.delete (“”) elif名称==把丈? c=askcolor(颜色=self.fgcolor title=盎恃≡裱丈? self.fgcolor=c [1] def myline(自我、事件): self.startDraw(事件) self.lastDraw=self.drawCad.create_line (self.x self.y、event.x event.y,填补=self.fgcolor) def mylineArrow(自我、事件): self.startDraw(事件) 自我。lastDraw=self.drawCad.create_line(自我。x,自我。y,事件。x,事件。=y,箭头,填补=self.fgcolor) def myRect(自我、事件): self.startDraw(事件) 自我。lastDraw=self.drawCad.create_rectangle(自我。x,自我。y,事件。x,事件。y,轮廓=self.fgcolor) def myPen(自我、事件): self.startDraw(事件) self.drawCad.create_rectangle(自我。x,自我。y,事件。x,事件。y,轮廓=self.fgcolor) self.x=event.x self.y=event.y def myEarsor(自我、事件): self.startDraw(事件) self.drawCad.create_rectangle(事件。* 4、事件。4、事件。x + 4,事件。y + 4,填补=self.bgcolor) 自我。x=event.x 自我。y=event.y def stopDraw(自我、事件): self.startDrawFlag=False self.lastDraw=0 def startDraw(自我、事件): self.drawCad.delete (self.lastDraw) 如果不是self.startDrawFlag: 自我。startDrawFlag=True 自我。x=event.x 自我。y=event.y 根=Tk () 应用=应用程序(根) root.title(“简易的画图工具”) root.geometry (str (win_width) + x + str (win_height) + + 100 + 100) root.mainloop ()
结果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。