Wie kann ich ein Fadenkreuz erzeugen, dass der maus folgt?(das Fadekreuz soll die maus ersetzen) ich habe es bereits mit "motion" probiert hatte aber keinen erfolg.
Danke im Voraus
Hilfe bei Canvas
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Hi Leecher,
Willkommen im Forum,
_such_ dir einen aus:
http://www.python-forum.de/topic-6789.h ... af487a4697
Gruß, jj
Willkommen im Forum,
_such_ dir einen aus:
http://www.python-forum.de/topic-6789.h ... af487a4697
Gruß, jj
Zuletzt geändert von schlangenbeschwörer am Mittwoch 8. November 2006, 18:24, insgesamt 1-mal geändert.
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Du meinst doch sowas, oder?
Gruß, jj
Code: Alles auswählen
from Tkinter import*
main=Tk()
canvas=Canvas(main,bg="white",cursor="crosshair")
canvas.pack(padx=5,pady=5)
main.mainloop()
-
- User
- Beiträge: 11
- Registriert: Mittwoch 8. November 2006, 17:41
- Wohnort: Eckernförde (Schleswig Holstein)
hmm.. also so isses doch falsch, hab das anders gemeint^^ sry.. also wenn man klickt soll ein fandenkreuz auftauchen und wenn ich dann an eine andere stelle klicke soll es von der alten stelle verschwinden und wieder an der nneue stelle, wo ich geklickt habe erscheinen.. thx
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Hi Leecher,
meinst du das?
Code: Alles auswählen
from Tkinter import*
class fadenkreuz:
def __init__(self,canvas,size):
# zuerst ein Kreutz im "off" erzeugen:
self.x=-100
self.y=-100
self.size=size
self.x1=self.x-self.size
self.x2=self.x+self.size
self.y1=self.y-self.size
self.y2=self.y+self.size
self.c=canvas
# hier optionen wie ergaenzen:
self.l1=self.c.create_line(self.x1,self.y,self.x2,self.y)
self.l2=self.c.create_line(self.x,self.y1,self.x,self.y2)
def move_(self,x,y):
x_dif=x-self.x
y_dif=y-self.y
self.x=x
self.y=y
self.c.move(self.l1,x_dif,y_dif)
self.c.move(self.l2,x_dif,y_dif)
class test :
def __init__(self):
self.main=Tk()
self.canvas=Canvas(self.main,bg="white")
self.canvas.bind("<ButtonRelease>",self.moveit)
self.canvas.pack()
self.fk=fadenkreuz(self.canvas,35)
def moveit(self,event):
self.fk.move_(event.x,event.y)
t=test()
t.main.mainloop()
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Jup, kleine Ergänzung zu Stephan:
Das "self" ist zwar üblich, aber nix von Python, du kannst auch statt "self" überall "was_du_willst" oder "was_anderes" hinschreiben, Hauptsache es ist immer das gleiche:
is equal to:
Gruß, jj
Das "self" ist zwar üblich, aber nix von Python, du kannst auch statt "self" überall "was_du_willst" oder "was_anderes" hinschreiben, Hauptsache es ist immer das gleiche:
Code: Alles auswählen
class XXX: # das ist nur ne allgemeine klassenbeschreibung
def __init__(self):
self.x1=1
#...
mein_x=XXX()
# jetzt steht das "self" oben für mein_x
Code: Alles auswählen
class XXX:
def __init__(someones_x):
someones_x.x1=1
#...
mein_x=XXX()
Wir arbeiten in der Schule gerade mit Canvas.
Ich habe dazu 2 Fragen:
1.Wie kann ich es machen, dass das Fadenkreuz bei einem Klick genau in der Mitte des Canvasfeldes auftaucht und dort auch stehen bleibt?
2.Wie kriegt man es hin, dass wenn man in einen bestimmten Bereich klickt das (beliebige) Symbol genau auf einem Punkt hingezeichnet wird?
Ich habe dazu 2 Fragen:
1.Wie kann ich es machen, dass das Fadenkreuz bei einem Klick genau in der Mitte des Canvasfeldes auftaucht und dort auch stehen bleibt?
2.Wie kriegt man es hin, dass wenn man in einen bestimmten Bereich klickt das (beliebige) Symbol genau auf einem Punkt hingezeichnet wird?
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
1. Hallo
2. Ein neuer Thread wäre auch ok gewesen
3. zu 2. Du berechnest den Mittelpunkt des Canvas und zeichnest dort das Kreuz.
4. zu 3. Was genau hast du an den obrigen Erklärungen nicht verstanden?
5. Gruß
2. Ein neuer Thread wäre auch ok gewesen
3. zu 2. Du berechnest den Mittelpunkt des Canvas und zeichnest dort das Kreuz.
4. zu 3. Was genau hast du an den obrigen Erklärungen nicht verstanden?
5. Gruß
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Es gibt keinen tk-Befehl um ein Kreuz zu zeichnen, das musst du schon selbst machen. Ab besten aus zwei Linien, die du mit [tk.Canvas-Object].create_line(x1, y1, x2, y2, ...) erzeugst. Die Punkte musst du natürlich erst berechnen, bezogen auf den gewünschten Mittelpunkt (s. ln. 1-7). Du solltest den obrigen Code mal durchgehen und versuchen zu verstehen. Wenn dann noch Fragen sind, diese genau formulieren.schlangenbeschwörer hat geschrieben:Code: Alles auswählen
self.x=-100 self.y=-100 self.size=size self.x1=self.x-self.size self.x2=self.x+self.size self.y1=self.y-self.size self.y2=self.y+self.size self.c=canvas # hier optionen wie ergaenzen: self.l1=self.c.create_line(self.x1,self.y,self.x2,self.y) self.l2=self.c.create_line(self.x,self.y1,self.x,self.y2)