Portál AbcLinuxu, 10. května 2025 19:46

Dotaz: Python + Tkimage - nezobrazujici se obrazek na platne

29.7.2007 12:14 RAM | skóre: 1
Python + Tkimage - nezobrazujici se obrazek na platne
Přečteno: 218×
Odpovědět | Admin

Zdravim,

delam si v Python s vyuzitim Tkinteru a modulu PIL prohlizec obrazku, ale narazil jsem na jednu vec, kterou nevim jak vyresit. Mam okno, kde je menu a v menu polozka Otevrit soubor. Tato polozka vola funkci otevreni_souboru(), ktera vypada nasledovne:


def otevreni_souboru():
platno = Tkinter.Canvas(hlavni_okno)
platno.pack(expand = 1, fill = BOTH)
obrazek_soubor = Image.open("obr.jpg")
obrazek = ImageTk.PhotoImage(obrazek_soubor)
obr = platno.create_image(0, 0, image = obrazek)

Problem je, ze se v hlavnim okne alikace (hlavni_okno) obrazek vubec nezobrazi. Kdyz pouziji podobny skript, ale bez funkce, tak je vse OK:


import Tkinter, Image, ImageTk
root=Tkinter.Tk()
platno=Tkinter.Canvas()
platno.pack()
obrazekRaw = Image.open("obr.jpg")
obrazek = ImageTk.PhotoImage(obrazekRaw)
polozka = platno.create_image(100, 100, image=obrazek)
root.mainloop()

Nevite, kde muze byt chyba?

Predem diky


Roman

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

geon avatar 29.7.2007 12:29 geon | skóre: 18 | blog: bavaria
Rozbalit Rozbalit vše Re: Python + Tkimage - nezobrazujici se obrazek na platne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Musíš nějak instanci obrázku zachovat, aby nezanikala po opuštění funkce. např. root.obr=obrazek.
29.7.2007 13:15 RAM | skóre: 1
Rozbalit Rozbalit vše Re: Python + Tkimage - nezobrazujici se obrazek na platne
Díky moc za radu, opravdu to tak funguje!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.