2017-06-24 6 views
0

Ich möchte, dass ein Objekt im Fenster von tkinter angezeigt wird, auf das der Benutzer klickt. Ich habe diesen Code:Platzieren Sie Objekte in Canvas, auf die mit Binding Python geklickt wurde

from tkinter import * 

class Storage: 

    def __init__(self): 
     x = None 
     circle = None 
     w=None 

class Game: 

    def Start(): 
     #make object appear where clicked 

root = Tk() 

w = Canvas(root, width=200, height=100) 
w.pack() 

w.bind("<Button-1>", Start) 


start = Button(text="Start!", command=Game.Start) 
start.pack() 

root.mainloop() 

Jede mögliche Hilfe dank geschätzt.

Antwort

0

allererst sollten Sie die Leinwand Objekt auf dem Rahmen setzen, dann binden Sie die Leinwand auf das Ereignis requred

from tkinter import * 

class Storage: 

    def __init__(self): 
     x = None 
     circle = None 
     w=None 

class Game: 

    def Start(event): 
     print("clicked at", event.x, event.y) 
     x = event.x 
     y = event.y 
     w.create_rectangle(x, y, 100, 100, fill="blue") 

root = Tk() 




frame = Frame(root, width=200, height=200) 

frame.pack() 
w = Canvas(frame, width=200, height=100) 
w.pack() 
w.bind("<Button-1>", Game.Start) 

root.mainloop() 
+0

Putting die Leinwand in einem Rahmen ändert nichts. Warum sagst du, ein Rahmen ist notwendig? –

Verwandte Themen