Ваш реальный код может вносить ошибки на основе формата файла path
указывает на. При этом некоторые форматы изображений, такие как .gif, .pgm (и .png, если tk.TkVersion> = 8.6), уже поддерживаются классом PhotoImage
.
Ниже приведен пример отображения:
или 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()
Я рекомендую вам прочитать книгу "Python и программирование Tkinter". Очень хорошая книга, тщательная. Вы можете найти их на eBay по более низким ценам. Это предполагает, что вы действительно хотите использовать TKinter. Я рекомендую Qt вместо Tkinter, хотя – frankliuao