2016-08-31 30 views
1

我正在研究一個簡單的繪圖程序,它結合了Tkinter和Turtle模塊。龜寫意圖

我想添加一個選項,用戶可以通過在Paint上使用類似於筆控件的鼠標來繪製任何東西。我嘗試了很多東西,我不能用鼠標

from tkinter import * 
import turtle 

sc=Tk() 
sc.geometry("1000x1000+100+100") 

fr4=Frame(sc,height=500,width=600,bd=4,bg="light green",takefocus="",relief=SUNKEN) 

fr4.grid(row=2,column=2,sticky=(N,E,W,S)) 

#Canvas 
canvas = Canvas(fr4,width=750, height=750) 
canvas.pack() 

#Turtle 
turtle1=turtle.RawTurtle(canvas) 
turtle1.color("blue") 
turtle1.shape("turtle") 

points=[] 

spline=0 

tag1="theline" 

def point(event): 
    canvas.create_oval(event.x, event.y, event.x+1, event.y+1, fill="red") 
    points.append(event.x) 
    points.append(event.y) 
    return points 

def canxy(event): 
    print (event.x, event.y) 

def graph(event): 
    global theline 
    canvas.create_line(points, tags="theline") 

def toggle(event): 
    global spline 
    if spline == 0: 
     canvas.itemconfigure(tag1, smooth=1) 
     spline = 1 
    elif spline == 1: 
     canvas.itemconfigure(tag1, smooth=0) 
     spline = 0 
    return spline 

canvas.bind("<Button-1>", point) 

canvas.bind("<Button-3>", graph) 

canvas.bind("<Button-2>", toggle) 

sc.mainloop() 
+0

感謝您的編輯和更正。 –

回答

2

下面的代碼將讓你寫意弄清楚l可怎麼辦it.How CAN L讓烏龜在畫布上畫任何東西(如油漆筆小部件)與烏龜畫畫。您需要與您的其他代碼集成:

import tkinter 
import turtle 

sc = tkinter.Tk() 
sc.geometry("1000x1000+100+100") 

fr4 = tkinter.Frame(sc, height=500, width=600, bd=4, bg="light green", takefocus="", relief=tkinter.SUNKEN) 

fr4.grid(row=2, column=2, sticky=(tkinter.N, tkinter.E, tkinter.W, tkinter.S)) 

# Canvas 
canvas = tkinter.Canvas(fr4, width=750, height=750) 
canvas.pack() 

# Turtle 
turtle1 = turtle.RawTurtle(canvas) 
turtle1.color("blue") 
turtle1.shape("turtle") 

def drag_handler(x, y): 
    turtle1.ondrag(None) # disable event inside event handler 
    turtle1.goto(x, y) 
    turtle1.ondrag(drag_handler) # reenable event on event handler exit 

turtle1.ondrag(drag_handler) 

sc.mainloop() 
+0

非常感謝。這正是我正在尋找的。 –