python tkinter mainloop,python – tkinter无法在不包含mainloop的类中添加照片

这篇博客讨论了在Python Tkinter GUI中遇到的问题,即如何正确地在类中添加图像。作者提供了两段代码,一段展示了图像成功显示的场景,另一段则显示了在类内部尝试添加图像但未能显示的情况。问题似乎与图像对象的生命周期和其在类中的使用方式有关。

我不熟悉python,特别是GUI问题.

我正在尝试从其他类添加图像,我找到了添加其他对象但不添加图像的方法.

这段代码很好用:

from Tkinter import *

from PIL import Image, ImageTk

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.parent = master

self.initUI()

def initUI(self):

self.outputBox = Text(self.parent, bg='black', height= 10, fg='green', relief=SUNKEN, yscrollcommand='TRUE')

self.outputBox.pack(fill='both', expand=True)

def main():

root = Tk()

app = Application(root)

app.parent.geometry('800x500')

app.parent.configure(background = 'red')

path = "../img/Stalin.jpeg"

img = ImageTk.PhotoImage(Image.open(path))

panel = Label(app.parent, image = img)

panel.pack(side = "bottom", fill = "both", expand = "yes")

app.mainloop()

main()

但是当我尝试从类中添加图像时,它会打开窗口但是没有图像:

from Tkinter import *

from PIL import Image, ImageTk

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.parent = master

self.initUI()

def initUI(self):

self.outputBox = Text(self.parent, bg='black', height= 10, fg='green', relief=SUNKEN, yscrollcommand='TRUE')

self.outputBox.pack(fill='both', expand=True)

path = "../img/Stalin.jpeg"

img = ImageTk.PhotoImage(Image.open(path))

panel = Label(self.parent, image = img)

panel.pack(side = "bottom", fill = "both", expand = "yes")

def main():

root = Tk()

app = Application(root)

app.parent.geometry('800x500')

app.parent.configure(background = 'red')

app.mainloop()

main()

在eclipse上使用python 2.7.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值