上一篇文章讲了用Tkinter的画布简易实现了白板功能,但是画笔写出来的墨迹断断续续,不连贯,那么这篇文章就来讲如何把Tkinter库与Turtle库集成。
话不多说,上代码:
def goto_mouse(event):
t.goto(event.x-w/2,(event.y-h/2)*(-1))
#使画笔移动到鼠标位置
def uppen(event):
t.penup()
#提起画笔
def paint(event):
t.pendown()
#放下画笔
#上面的函数中,括号内必须添加event,否则函数被调用时不会被执行
from tkinter import *
import turtle
win = Tk()
win.title('白板程序')
win.overrideredirect(True)
w, h = win.maxsize()
win.geometry("{}x{}".format(w, h))
#创建窗体
canvas_main = Canvas(win,width=w,height=h,bg="#ffffff")
canvas_main.pack()
#添加画布
#以下是Tkinter库与Turtle库集成的代码
t = turtle.RawTurtle(canvas_main) #将Turtle的画布集成在叫做canvas_main的画布中
t.pencolor("#000000") #画笔颜色
t.hideturtle() #隐藏turtle的自带画笔
t.penup() #提起画笔
canvas_main.bind("<B1-Motion>", goto_mouse) #鼠标移动
canvas_main.bind("<ButtonPress-1>",paint) #鼠标按下
canvas_main.bind("<ButtonRelease-1>",uppen) #鼠标释放
#绑定
win.mainloop()
效果图:
这样就写出来的就是连贯的线了