Image nachladen

Fragen zu Tkinter.
Antworten
Andi
User
Beiträge: 24
Registriert: Sonntag 27. Juli 2003, 14:23
Wohnort: Großkarolinenfeld

Montag 28. Juli 2003, 07:12

Halli Hallo,

kann man denn ein Image nicht nachladen?
Die Größenänderung erfolgt bei einem Klick auf den button jedoch wird das Bild nicht angezeigt.

Code: Alles auswählen

if __name__ == "__main__":
    import sys,os

import Image,Tkinter,ImageTk

def quit(event=None):
	top.destroy()
	top.quit()

def reloadImg():
    img = Image.open(os.getcwd()+r"\1.jpg")
    p = ImageTk.PhotoImage(img)

    canvas['width'] = img.size[0]
    canvas['height'] = img.size[1]
    canvas.create_image(0,0,anchor='nw',image=p)

app = Tkinter.Tk()
app.withdraw()

top = Tkinter.Toplevel(app,visual="truecolor",colormap="new")
top.title("test Image")
top.protocol("WM_DELETE_WINDOW", quit)
top.bind("<q>",quit)
top.bind("<Q>",quit)

canvas = Tkinter.Canvas(top)
canvas.pack()
btn=Tkinter.Button(top,text="test",command=reloadImg)
btn.pack(side=Tkinter.BOTTOM)

top.mainloop()
Vielen Dank im voraus

mfg Andi
mfg

(der Anderl aus Bavaria der bei den Preißn war und jetzt wieda in bayern is)
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Montag 28. Juli 2003, 10:04

Hallo Andi!
Andi hat geschrieben:kann man denn ein Image nicht nachladen?
Wie vermutet (deshalb mein Hinweis auf http://python.sandtner.net/viewtopic.php?t=492 ) existiert Dein p nicht über die gesamte Laufzeit. Mach' p global, indem Du am Anfang von reloadImg() global p einfügst.

Jan
PS: Bei gleichem Thema bitte möglichst keinen neuen Thread eröffnen.
Antworten