我不确定为什么,但是当将Tkinter按钮的图像放置在GUI对象中的网格内时,运行代码时图像将不会显示。解释器不会抛出任何错误,并且网格会根据图像大小自动调整大小,但是图像本身不会显示,并且按钮本身不会响应单击。
from tkinter import *
class Foobar(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("Foobar")
self.grid()
fooImage = PhotoImage(file = r"/PNG/foo.png")
self._fooButton = Button(self, text="a", image=fooImage, command = lambda: self._say("foo"))
self._fooButton.grid(row = 0, column = 0)
barImage = PhotoImage(file = r"/PNG/bar.png")
self._barButton = Button(self, text="b", image=barImage, command = lambda: self._say("bar"))
self._barButton.grid(row = 0, column = 1)
def _say(response):
print(response)
Foobar().mainloop()
图像地址不正确不是问题,因为当我尝试将它们与基本Tk()一起使用时,它就可以正常工作。