我正在尝试构建一个tkinter带有图像作为对象内部背景的按钮。为什么第二个实现不起作用没有任何意义!
这里有 3 个非常简单的例子;谁能解释为什么第二个实现不起作用?
(Python 3.6.4 :: Anaconda, Inc.)
1. 全局创建的按钮。
奇迹般有效...
from tkinter import *
from PIL import Image, ImageTk
from numpy import random
w = Tk()
def cb():
print("Hello World")
image = ImageTk.PhotoImage(image=Image.fromarray(random.random((50,50))))
b = Button(w, text="text", command=cb, image=image)
b.pack()
w.mainloop()
2. 在对象内部创建的A带有背景图像的按钮
该按钮在单击时不起作用并且不显示图像:(。显然有问题,但我不明白......
from tkinter import *
from PIL import Image, ImageTk
from numpy import random
w = Tk()
class A():
def __init__(self, w):
image = ImageTk.PhotoImage(image=Image.fromarray(random.random((50,50))))
b = Button(w, text="text", command=self.cb, image=image)
b.pack()
def cb(self):
print("Hello World")
a = A(w)
w.mainloop()
3.在对象内部创建的按钮,A没有背景图像
该按钮工作正常,但我也想显示图像
from tkinter import *
from PIL import Image, ImageTk
from numpy import random
w = Tk()
class A():
def __init__(self, w):
image = ImageTk.PhotoImage(image=Image.fromarray(random.random((50,50))))
b = Button(w, text="text", command=self.cb)#, image=image)
b.pack()
def cb(self):
print("Hello World")
a = A(w)
w.mainloop()
PIPIONE
莫回无
相关分类