我目前正处于录制Python演讲的中间,我认为老师正在使用的python版本已经过时,他正在编写一个tkinter程序,但在复制之后我不断收到此错误:
Traceback (most recent call last):
File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\Lecture Class 11.py", line 35, in <module>
photo = PhotoImage(file="Me With My 5th Place.jpg")
File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3539, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3495, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "Me With My 5th Place.jpg"
抱歉这个尺码。 这是我的代码:
from tkinter import *
class Application(Frame):
def __init__(self, master):
super(Application, self).__init__(master)
self.grid()
self.button_clicks = 0
self.create_widgets()
def create_widgets(self):
self.label1 = Label(self)
label1.image = photo
label1.grid()
self.button1 = Button(self)
self.button1["text"] = "Click me!!!"
self.button1["command"] = self.update_count
self.button1.grid(row=1, column=1)
self.button2 = Button(self)
self.button2["text"] = "Reset click counter"
self.button2["command"] = self.reset_count
self.button.grid(row=3,column= 1)
def update_count(self):
self.button_clicks += 1
self.button1["text"] = "Total clicks: " + str(self.button_clicks)
def res_count(self):
self.button_clicks = 0
self.button["text"] = "I am reset. Click me!!!"
root = Tk()
root.title("CP101 click counter")
root.geometry("400x400")
photo = PhotoImage(file="Me With My 5th Place.jpg")
app = Application(root)
root.mainloop()
答案 0 :(得分:4)
tkinter
默认不支持 .jpg。您可以使用PIL
:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except:
import Tkinter as tk
from PIL import Image, ImageTk
if __name__ == '__main__':
root = tk.Tk()
label = tk.Label(root)
img = Image.open(r"C:\Users\Public\Pictures\Sample Pictures\Koala.jpg")
label.img = ImageTk.PhotoImage(img)
label['image'] = label.img
label.pack()
root.mainloop()
答案 1 :(得分:2)
这很正常。 Tkinter尚不支持.jpg文件。要解决此问题,您要将文件转换为.png,.gif或类似文件,或使用Pillow模块添加对.jpg文件的支持。