Tkinter Label 中的图像?
我刚开始学习用Python做图形界面编程,想在我的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, 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()
2 个回答
3
img = Image.open('image_name')
self.tkimage = ImageTk.PhotoImage(img)
Label(self,image = self.tkimage).place(x=0, y=0, relwidth=1, relheight=1)
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
9
为了调试,尽量不要使用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()