Python Tkinter标签中的图像?
我是PythonGUI编程新手,我想在tkinter标签中添加一个图像,我创建了以下代码,但是窗口没有显示我的图像。图像的路径与此代码所在的文件夹相同Python Tkinter标签中的图像?,python,image,tkinter,Python,Image,Tkinter,我是PythonGUI编程新手,我想在tkinter标签中添加一个图像,我创建了以下代码,但是窗口没有显示我的图像。图像的路径与此代码所在的文件夹相同 import ImageTk import Tkinter as tk from Tkinter import * from PIL import Image def make_label(master, x, y, w, h, img, *args, **kwargs): f = Frame(master, height = h,
import ImageTk
import Tkinter as tk
from Tkinter import *
from PIL import Image
def make_label(master, x, y, w, h, img, *args, **kwargs):
f = Frame(master, height = h, width = w)
f.pack_propagate(0)
f.place(x = x, y = y)
label = Label(f, image = img, *args, **kwargs)
label.pack(fill = BOTH, expand = 1)
return label
if __name__ == '__main__':
root = tk.Tk()
frame = tk.Frame(root, width=400, height=600, background='white')
frame.pack_propagate(0)
frame.pack()
img = ImageTk.PhotoImage(Image.open('logo.png'))
make_label(root, 0, 0, 400, 100, img)
root.mainloop()
出于调试目的,尽量避免使用PIL,并直接在PhotoImage中加载一些*.gif(或其他可接受的)文件,如下图所示,如果它对您有效,则只需将图像转换为*.gif或尝试处理PIL
from tkinter import *
def make_label(parent, img):
label = Label(parent, image=img)
label.pack()
if __name__ == '__main__':
root = Tk()
frame = Frame(root, width=400, height=600, background='white')
frame.pack_propagate(0)
frame.pack()
img = PhotoImage(file='logo.gif')
make_label(frame, img)
root.mainloop()
请详细说明这将解决问题的原因。这就决定了低质量答案和高质量答案之间的区别。一句俏皮话对大家都没什么帮助。对我来说很好。这是你的真实代码吗?如果不是的话,我的猜测是。你有什么错误吗?没有,没有错误,只有一个空窗口。正如我所说,对我来说很好。。。因此,如果这是您的原始代码,是否您的“logo.png”实际上要大得多,而您看到的只是它的左上角(白色)呢?另外,您使用的是什么确切的python版本?明白了,logo.png太大了,无法显示。谢谢您可以使用
Image.open('logo.png')。resize((400100))
来调整它的大小。请解释代码的作用,以及它如何解决OP的问题。只有代码而没有解释的答案对其他读者没有用处,因此很可能会吸引反对票。
img = Image.open('image_name')
self.tkimage = ImageTk.PhotoImage(img)
Label(self,image = self.tkimage).place(x=0, y=0, relwidth=1, relheight=1)