Seite 1 von 1

repaint bei Tkinter

Verfasst: Dienstag 17. August 2004, 09:31
von micha
hi,

wie kann ich bei Tkinter u. Canvas so eine art repaint machen,
das heißt bei jedem neuen zeichnen mit create_..., das canvas
loeschen?
gibt es da eine einfache möglichkeit?
bisher habe ich es so probiert:

Code: Alles auswählen


def __init__(self):
    ...
    self.malen = None
    ...
def myPaint(self,event):
    canvas = event.widget
    if self.malen: canvas.delete(self.malen)
    t1 = canvas.create_text(0,0,meinText)
    self.malen = t1
    ...
ich möchte mehrere objekte erstellen und würde dann viele solcher variablen und abfragen brauchen.
gibt es da vieleicht einen einfachen weg ?

Verfasst: Dienstag 17. August 2004, 09:48
von mawe
Hi!

Du könntest tags verwenden:

Code: Alles auswählen

from Tkinter import *

def clear_it():
	c.delete("loeschbar")

root = Tk()
c = Canvas()
c.pack()
x,y = 10,10
for i in range(10):
	c.create_text(x,y,text=i,tags="loeschbar")
	x+=10
	y+=10
c.create_text(100,200,text="Diesen Text nicht loeschen",tags="unloeschbar")

Button(text="Clear",command=clear_it).pack()
root.mainloop()
Alles mit dem tag "loeschbar" wird durch clear_it geloescht, alles andere nicht.

Gruß, mawe

Verfasst: Dienstag 17. August 2004, 10:12
von micha
danke mave,
werde ich gleich mal probieren.

ich habe noch noch eine frage zum abfragen von Canvas-groeße.
setze ich Tk() mit geometry(500x500) auf eine größe und das Canvas
mit pack(fill=BOTH,expand=1).
beim abfragen hat das Canvas genau die selbe größe wie das
Tk(), obwohl es doch etwas kleiner sein müßte wegen der fehlenden
titel-leiste?
gibt es dafür eine erklärung?

gruß micha

Verfasst: Dienstag 17. August 2004, 12:45
von Dookie
Hi micha,

mit geometry(...) stellst Du die innere Grösse des Fensters ohne Rahmen ein. Ist auch irgendow klar, je nach Platform und Fenstermanager können Fensterrahmen und Titelleisten ja unterschiedlich breit sein.


Gruß

Dookie

Verfasst: Dienstag 17. August 2004, 14:28
von micha
danke Dookie,

mir war das irgend wie nicht so klar.
ich beschäftige mich erst seit kurzem mit python.
bei java ist das nämlich nicht so, da gibts außen Frame
und alles andere was drauf kommt ist kleiner.

gibt es eine zu empfehlende Tkinter-Doku ?

viele Grüße
micha

Verfasst: Dienstag 17. August 2004, 14:57
von mawe
Hi!
micha hat geschrieben: gibt es eine zu empfehlende Tkinter-Doku ?
Schau mal hier.

Gruß, mawe

Verfasst: Dienstag 17. August 2004, 15:04
von Dookie
ich schau meistens bei http://www.pythonware.com/library/tkint ... /index.htm nach


Gruß

Dookie