我想学点tkinter。我不能让tkinter显示图标。我不知道哪里出了问题。它不会产生任何误差,而且它尊重图像的大小,但它是不可见的。我在网上找到的所有东西都告诉我添加第二个引用以防止从python收集垃圾,但不知何故这并不是诀窍。 下面是我的代码出错的部分:
from Tkinter import *
from PIL import Image, ImageTk
class GUI:
def __init__(self, master):
frame = Frame(master)
frame.pack()
#status bar
self.bar = Frame(root, relief=RIDGE, borderwidth=5)
self.bar.pack(side=TOP)
self.iconPath = 'data/icons/size.png'
self.icon = ImageTk.PhotoImage(Image.open(self.iconPath))
self.icon_size = Label(self.bar, image = self.icon)
self.icon_size.pack(side=LEFT)
root = Tk()
app = GUI(root)
root.mainloop()
向Tkinter小部件添加PhotoImage或其他图像对象时,必须保留对该图像对象的引用。如果你不这样做,图像就不会一直出现。
决定here
对所有未来的读者来说,我的问题在于透明度。从图像中移除alpha通道修复了它。
出于某种原因(我不知道确切的原因),您必须将图像对象锚定到小部件中才能显示它。因此,请尝试对代码进行以下更改:
祝你好运!
相关问题 更多 >
编程相关推荐