Twój aktualny kod może zwrócić błąd w zależności od formatu pliku path
punktów. Mimo to niektóre formaty obrazów, takie jak .gif, .pgm (i .png, jeśli tk.TkVersion> = 8.6) są już obsługiwane przez klasę PhotoImage
.
Poniżej jest przykład wyświetlanie:
czy tk.TkVersion < 8.6
:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def download_images():
# In order to fetch the image online
try:
import urllib.request as url
except ImportError:
import urllib as url
url.urlretrieve("https://i.stack.imgur.com/IgD2r.png", "lenna.png")
url.urlretrieve("https://i.stack.imgur.com/sML82.gif", "lenna.gif")
if __name__ == '__main__':
download_images()
root = tk.Tk()
widget = tk.Label(root, compound='top')
widget.lenna_image_png = tk.PhotoImage(file="lenna.png")
widget.lenna_image_gif = tk.PhotoImage(file="lenna.gif")
try:
widget['text'] = "Lenna.png"
widget['image'] = widget.lenna_image_png
except:
widget['text'] = "Lenna.gif"
widget['image'] = widget.lenna_image_gif
widget.pack()
root.mainloop()
Polecam przeczytać książkę "programowania Python i tkinter". Bardzo dobra książka, dokładna. Możesz prawdopodobnie znaleźć je na eBay po niższych cenach. Zakładamy, że naprawdę chcesz używać TKinter. Polecam Qt zamiast Tkintera – frankliuao