1、photo = tkinter.PhotoImage不能显示图片却不报错
原因分析:
估计是被Python的垃圾回收机制回收了,具体原因不明,
但是加入全局变量或者变成类属性就好了,解决办法有两个。
一、解决办法其一:
加入全局变量global photo
如下代码:
#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
# @Time : 2019/2/8 18:09
# @Email : jtyoui@qq.com
# @Software: PyCharm
import tkinter
class APP:
def __init__(self, t):
global photo
photo = tkinter.PhotoImage(file='tk.png') # 实际上是把这个变成全局变量
image_label = tkinter.Label(t, image=photo)
image_label.pack()
if __name__ == '__main__':
root = tkinter.Tk()
app = APP(root)
root.mainloop()
二、解决办法其二:
变成类属性,加入self.photo
如下代码:
#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
# @Time : 2019/2/8 18:09
# @Email : jtyoui@qq.com
# @Software: PyCharm
import tkinter
class APP:
def __init__(self, t):
self.photo = tkinter.PhotoImage(file='tk.png') # 实际上是把这个变成类属性
image_label = tkinter.Label(t, image=self.photo)
image_label.pack()
if __name__ == '__main__':
root = tkinter.Tk()
app = APP(root)
root.mainloop()