Я делаю программу, в которой мне нужно в какой-то момент отобразить изображение в кадре одним нажатием кнопки.Я использую объектно-ориентированный подход, но он не будет отображать изображение.Если я сделаю что-то вроде:
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
pic = Image.open("image.jpg")
tkpic = ImageTk.PhotoImage(pic)
label = Label(root, image=tkpic)
label.pack()
root.mainloop()
, это прекрасно работает.Но если я создаю рамку и пытаюсь отобразить картинку следующим образом:
from tkinter import *
from PIL import Image, ImageTk
class picframe(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
button = Button(self, text="show", command=self.showpic)
button.pack()
def showpic(self):
pic = Image.open("image.jpg")
tkpic = ImageTk.PhotoImage(pic)
label = Label(self, image=tkpic)
label.pack()
root = Tk()
frame = picframe(root)
frame.pack()
root.mainloop()
Когда я нажимаю кнопку, она расширяет окно, как будто оно пытается отобразить изображение, но ничего не появляется, оно просто становитсяболее широкое окно.Так что я делаю не так?
Заранее спасибо!