python实现画图工具

发布时间:2020-08-30 02:59:21

来源:脚本之家

阅读:99

作者:小黑来修仙

简易画图工具(Python),供大家参考,具体内容如下

小黑最近在努力的入门python,正好学习到了Python的tkinker模块下的Canvas(画布)和Button(按钮)再加上相应的事务管理,实现了一个简单的画图小工具。

程序代码

#画图软件的实现

from tkinter.filedialog import *

from tkinter import *

from tkinter.colorchooser import *

win_width=900

win_height=450

class Application(Frame):

def __init__(self,master=None,bgcolor="#000000"):

super().__init__(master)

self.master=master

self.bgcolor=bgcolor

self.x=0

self.y=0

self.fgcolor="#ff0000"

self.lastDraw=0 #表示最后绘制的图形的id

self.startDrawFlag=False

self.pack()

self.createWidget()

def createWidget(self):

# 创建画板

self.drawCad=Canvas(self,width=win_width,height=win_height*0.9,bg=self.bgcolor)

self.drawCad.pack()

# 创建按钮

btn_start = Button(self,text="开始",name="start")

btn_start.pack(side="left",padx=10)

btn_pen = Button(self, text="画笔", name="pen")

btn_pen.pack(side="left", padx=10)

btn_rect = Button(self, text="矩形", name="rect")

btn_rect.pack(side="left", padx=10)

btn_clear = Button(self, text="清屏", name="clear")

btn_clear.pack(side="left", padx=10)

btn_earsor = Button(self, text="橡皮擦", name="earsor")

btn_earsor.pack(side="left", padx=10)

btn_line = Button(self, text="直线", name="line")

btn_line.pack(side="left", padx=10)

btn_lineArrow = Button(self, text="箭头直线", name="lineArrow")

btn_lineArrow.pack(side="left", padx=10)

btn_color = Button(self, text="颜色", name="color")

btn_color.pack(side="left", padx=10)

#为按钮绑定事件

btn_pen.bind_class("Button","<1>",self.eventManger)

self.drawCad.bind("",self.stopDraw)

def eventManger(self,event):

name=event.widget.winfo_name()

print(name)

if name=="line" :

self.drawCad.bind("",self.myline)

elif name=="lineArrow":

self.drawCad.bind("", self.mylineArrow)

elif name=="rect":

self.drawCad.bind("", self.myRect)

elif name=="pen":

self.drawCad.bind("", self.myPen)

elif name=="earsor":

self.drawCad.bind("", self.myEarsor)

elif name=="clear":

self.drawCad.delete("all")

elif name=="color":

c= askcolor(color=self.fgcolor,title="画笔选择颜色")

self.fgcolor=c[1]

def myline(self,event):

self.startDraw(event)

self.lastDraw=self.drawCad.create_line(self.x,self.y,event.x,event.y,fill=self.fgcolor)

def mylineArrow(self,event):

self.startDraw(event)

self.lastDraw = self.drawCad.create_line(self.x, self.y, event.x, event.y,arrow=LAST , fill=self.fgcolor)

def myRect(self,event):

self.startDraw(event)

self.lastDraw = self.drawCad.create_rectangle(self.x, self.y, event.x, event.y, outline=self.fgcolor)

def myPen(self,event):

self.startDraw(event)

self.drawCad.create_rectangle(self.x, self.y, event.x, event.y, outline=self.fgcolor)

self.x=event.x

self.y=event.y

def myEarsor(self,event):

self.startDraw(event)

self.drawCad.create_rectangle(event.x-4, event.y-4, event.x+4, event.y+4, fill=self.bgcolor)

self.x = event.x

self.y = event.y

def stopDraw(self,event):

self.startDrawFlag=False

self.lastDraw=0

def startDraw(self,event):

self.drawCad.delete(self.lastDraw)

if not self.startDrawFlag:

self.startDrawFlag = True

self.x = event.x

self.y = event.y

root=Tk()

app=Application(root)

root.title("简易的画图工具")

root.geometry(str(win_width)+"x"+str(win_height)+"+100+100")

root.mainloop()

结果展示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

python的画图工具有哪些_python实现画图工具相关推荐

  1. python画图软件是哪个_Python实现画图软件功能方法详解

    Python实现画图软件功能方法详解,按钮,事件,绑定,快捷键,直线 Python实现画图软件功能方法详解 易采站长站,站长之家为您整理了Python实现画图软件功能方法详解的相关内容. 概述 虽然P ...

  2. python怎么打开程序管理器_Python 进程管理工具 Supervisor 使用教程

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 进程管理工具 Supervisor 使用教程 Supervisor ...

  3. python函数分为哪几种_python数据挖掘常用工具有哪几种?

    原标题:python数据挖掘常用工具有哪几种? python有强大的第三方库,广泛用于数据分析,数据挖掘.机器学习等领域,下面小编整理了python数据挖掘的一些常用库,希望对各位小伙伴学习pytho ...

  4. python怎么打开程序管理器_python进程管理工具supervisor的安装与使用教程

    前言 在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便.如果有一个工具能够实现每台机器上多个进程的简单高效中心化 ...

  5. python贴吧数据可视化软件_Python数据可视化工具之Pyecharts初体验

    前言 之前采集了我爱我家的13000多条租房信息,准备做下数据分析,也了解到Pyecharts这个可视化工具,于是上手试了一番 pyecharts 是一个用于生成 Echarts 图表的类库.Echa ...

  6. python界面开发哪个好用_python界面开发工具哪个好?

    俗话说,好刃才能成好刀,找到适合自己的且功能全面的pytho界面开发工具也一样如此,满足项目使用,我们才能有效率,制作完美的项目工程,然而关于界面开发工具有很多,我们要怎么去选择呢?哪个才是最好的呢? ...

  7. python邮件合并的基本操作步骤_python邮件合并工具

    python写了一个自动化小工具,用于批量邮件合并,这篇文章就是工具使用方法的介绍了. 下面是介绍: MailMergeTool 该工具可以指定1个xlsx作为数据来源.指定1个或多个docx作为模板 ...

  8. python内置开发工具是什么_Python内置工具(tools)总结

    Python提供了以下几个内置tools模块,简化开发 operator collections itertools functools 除此之外,还有一些其他工具,比如mimetools.unitt ...

  9. python 天勤 金叉 编程代码_Python量化交易工具之#39;自适应#39;跟踪止盈算法,进阶必看!...

    点及财经,股票期货专业投机者. 这期文章,作者主要给大家分享,如何用Python 代码编写双均线策略,然后在策略中采用加速算法跟踪止盈作为出场方式,并回测. 前言 俗话说,会买的是徒弟,会卖的是师父, ...

  10. python哆啦a梦完整代码_Python执笔画图,代码一跑,哆啦A梦就出来了!

    环境: python 3.6 sublime text 3 turtle模块 核心就是turtle模块,它可以让你使用海龟图形(turtle graphics)绘制图像. 先介绍下关于它的使用方法: ...

最新文章

  1. 日常make 的小技巧
  2. Java 代码精简之道 | 长文
  3. 业务专题篇:用户使用路径分析
  4. disconf-自动注入属性变化
  5. get post put delete在vue中传参方式
  6. 文件操作(上传,下载,限制)
  7. Mr.J--初识Ajax
  8. 获取0~100之间的随机数
  9. 搜索引擎的强大意味着与之合作就会双赢?
  10. Redmi Note10系列发布时间曝光:最高搭载1亿像素主摄
  11. membership配置数据库(SQL2000)
  12. 学习拾遗--用RadioButtonList 或者DropDownList 进行动态赋值问题
  13. 蓝桥杯 ALGO-1 算法训练 区间k大数查询
  14. poj 2573 Bridge(有A、B、C、D四个人,要在夜里过一座桥……)
  15. oracle+调整+表空间,oracle数据库表空间及权限调整示例
  16. 超码、候选码、主码 与 外码
  17. nodejs、express下载和配置
  18. 软件开发的需求文档如何去写
  19. PNP三极管工作原理
  20. 人工智能之我见(1)

热门文章

  1. LogViewer-Unity日志的插件
  2. 如何修复苹果Mac中的快速视频播放错误
  3. QT+VS开发界面入门(qt界面在VS2022实现自动生成槽函数)
  4. 读取FBX文件踩坑清单
  5. 解读《美国国家BIM标准》– BIM能力成熟度模型(六)
  6. 需要缺少的Web组件才能加载,以及项目加载后显示“不可用”的解决方法
  7. 福昕阅读器 自定义注释快捷键
  8. 解决VMware虚拟机桥接模式无法上网
  9. 将Origin Pro设置成中文显示
  10. 2022五一数学建模C题思路分享