鱼C论坛

 找回密码
 立即注册
查看: 2541|回复: 2

[作品展示] 绘图软件

[复制链接]
发表于 2020-11-14 13:28:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 张育玮 于 2020-11-14 13:30 编辑
直接上代码^  -  ^
from tkinter import *
from tkinter.colorchooser import *

root = Tk()
root.configure(background="gray")

instruction = Label(root,text="用鼠标左键在画布上画画吧",background= "gray")
instruction.pack() # 1

colorButton = Button(root,text="选择颜色")
colorButton.pack() # 2

rectButten = Button(root,text="方形")
rectButten.pack() # 3

lineButton = Button(root,text="线条")
lineButton.pack() # 4

circleButton = Button(root,text="圆圈")
circleButton.pack() # 5

clearButton = Button(root,text="清除")
clearButton.pack() # 6

myCanvas = Canvas(root,width=400,height=300)
myCanvas.pack() # 7

myShape = "line" #使用myShape变量存储当前绘画的图形
myColor = "black"

def pen_down(event):
    global prevX
    global prevY
    prevX = event.x
    prevY = event.y
myCanvas.bind("<ButtonPress-1>",pen_down)
# 按下鼠标左键时,得到X、Y的坐标

def draw (event):
    global prevX
    global prevY
    if myShape == "line":
        myCanvas.create_line(prevX,prevY,event.x,event.y,fill=myColor)
        prevX = event.x
        prevY = event.y
myCanvas.bind("<B1-Motion>",draw)#当移动鼠标时,如果选择画线,就画线。

def pen_up(event):
    if myShape == "circle":
        myCanvas.create_oval(prevX,prevY,event.x,event.y,fill=myColor)
    if myShape == "rectangle":
        myCanvas.create_rectangle(prevX,prevY,event.x,event.y,fill=myColor)
myCanvas.bind("<ButtonRelease-1>",pen_up)
#松开鼠标左键时,如果myShape里是圆形,就绘制圆形,松开鼠标左键时,如果myShape里是矩形,就绘制炬形。

def pick_color(event):
    global myColor
    myColor = askcolor()
    myColor = myColor[1]
colorButton.bind("<Button-1>",pick_color)

def clear(event):
    myCanvas.delete(ALL)
clearButton.bind("<Button-1>", clear)

def set_line(event):
    global myShape
    myShape = "line"
lineButton.bind("<Button-1>",set_line)
#点击线条按钮时,设myShape为线条“line”

def set_rect(event):
    global myShape
    myShape = "rectangle"
rectButten.bind("<Button-1>",set_rect)
#点击方形按钮,设myShape为矩形。
def set_circle(event):
    global myShape
    myShape = "circle"
circleButton.bind("<Button-1>",set_circle)

mainloop()

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-14 15:49:38 | 显示全部楼层
这不错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 11:16:02 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 21:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表