Erweitert!
Verfasst: Donnerstag 11. Juni 2009, 14:15
ich habe ja schon mal um Hilfe gebeten, weil ich nicht hinbekommen habe einen Punkt mit der Maus zu erstellen und dann auch noch mit der selben Maustaste verschieben zu können!
Das vertige programm das ich mit eurer hilfe und mit der meines Freundes geschaft habe sieht jetzt so aus:
Jetzt habe ich lange probiert eine Erweiterung hierzu zu schreiben!
Es sollte einen Button geben welcher dann eine Funktion auslöst!(Das war ja kein Problem!) In dieser Funktion sollte das Programm warten bis ich zuerst einen und dann einen anderen Punkt den ich erstellt habe ausgewählt habe und diese zwei dann verbinden!
->Daran bin ich gescheitert! Kann mir da jemand helfen?
gruß meister56
Das vertige programm das ich mit eurer hilfe und mit der meines Freundes geschaft habe sieht jetzt so aus:
Code: Alles auswählen
from Tkinter import *
item_liste=[]
overlap_objekt=None
dragged=False
# x und y koordinaten
start_x=0
start_y=0
def klick(event):
global overlap_objekt
mouse_x, mouse_y=event.x, event.y
overlap_objekt=canvas.find_overlapping(mouse_x-5, mouse_y-5, mouse_x+5, mouse_y+5)
if overlap_objekt==():
objekt=canvas.create_oval(mouse_x-4, mouse_y-4, mouse_x+4, mouse_y+4, fill='black')
canvas.tag_bind(objekt, '<Button-1>', drag)
canvas.tag_bind(objekt, '<ButtonRelease-1>', drop)
canvas.tag_bind(objekt, '<Enter>', enter)
canvas.tag_bind(objekt, '<Leave>', leave)
canvas.tag_bind(objekt, '<Motion>', move)
return
def drag(event):
global dragged, start_x, start_y
start_x, start_y=event.x, event.y
dragged=True
canvas.config(cursor='fleur')
def drop(event):
global dragged
dragged=False
canvas.config(cursor='')
print event.x, event.y
def move(event):
global overlap_objekt, start_x, start_y, dragged
if dragged:
vektor=(event.x-start_x, event.y-start_y)
canvas.move(overlap_objekt, vektor[0], vektor[1])
start_x, start_y=event.x, event.y
def enter(event):
canvas.config(cursor='hand2')
def leave(event):
canvas.config(cursor='')
# Tk objekte
fenster=Tk()
canvas=Canvas(fenster, width=400, height=400)
canvas.pack()
# binds
canvas.bind('<Button-1>', klick)
Es sollte einen Button geben welcher dann eine Funktion auslöst!(Das war ja kein Problem!) In dieser Funktion sollte das Programm warten bis ich zuerst einen und dann einen anderen Punkt den ich erstellt habe ausgewählt habe und diese zwei dann verbinden!
->Daran bin ich gescheitert! Kann mir da jemand helfen?
gruß meister56