如何将图像添加到小部件?为什么不显示图像?

如何将图像添加到小部件?为什么不显示图像?,第1张

如何将图像添加到小部件?为什么不显示图像?

当您尝试在第一个版本中使用图像时,该图像将被垃圾回收。

effbot很古老,但是下面的代码片段很不错:

您必须在Python程序中保留对图像对象的引用,方法是将其存储在全局变量中,或者将其附加到另一个对象。

在第二个版本中,映像是在全局级别上声明的。

这是另一个演示此问题的示例,您希望它也可以工作,毕竟在函数中使用相同的代码

不起作用:

import tkinter as tkfrom PIL import ImageTkroot = tk.Tk()def make_button():    b = tk.Button(root)    image = ImageTk.PhotoImage(file="1.png")    b.config(image=image)    b.pack()make_button()root.mainloop()

起作用:

import tkiner as tkfrom PIL import ImageTkroot = tk.Tk()def make_button():    b = tk.Button(root)    image = ImageTk.PhotoImage(file="1.png")    b.config(image=image)    b.image = image    b.pack()make_button()root.mainloop()

为什么?中的变量

make_button
是该函数的局部变量。如果您在类中遇到此类问题,则具有相同的想法。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5617057.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存