In Tkinter, Python, versuche ich ein Programm zu erstellen, das das Erstellen einer Form auf einer Leinwand und mit einem Klick auf die Schaltfläche enthält, und keine weiteren Formen erstellt werden. Hier ist mein Code:Funktion erstellen, die nur einmal ausgeführt wird, nachdem sie zum ersten Mal mit Tkinter geklickt wurde?
from tkinter import *
root = Tk()
canvas = Canvas(root) # Creating Canvas
canvas.pack()
def create(event):
x1, y1 = (event.x - 5), (event.y - 5)
x2, y2 = (event.x + 5), (event.y + 5) # Creates Rectangle Where Button Clicked
canvas.create_rectangle(x1,y1,x2,y2,fill='red')
root.bind_all("<Button-1>", create) # Binds Mouse Click Button
citybg = PhotoImage(file= r"example.png")
citybgimage = canvas.create_image(50, 50, image=citybg) # Background for Canvas
Meine Frage ist, wie das Rechteck nur machen kann erstellen einmal und nur einmal, und die create
Funktion nicht mehr ausgeführt werden kann. Hoffe, das wurde gut erklärt, und ich hoffe, dass es gut beantwortet werden kann.
'root.bind_all()' gibt die Funktion zurück, die dem Ereignis zuvor zugewiesen wurde. Speichern Sie diesen Wert und binden Sie dann ("", previous_value) ', wenn Sie es wiederherstellen möchten (wahrscheinlich in der' create() '-Funktion). –
martineau