Pycharm中tkinter图不被加载的处理方法

本文探讨了在Python的Tkinter库中,图形界面图片显示的问题及其解决方案。当图片显示代码位于类方法中时,可能会遇到图片无法加载的情况。文章详细介绍了如何通过配置Label组件并正确引用PhotoImage对象来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存在问题:
代码写在主函数中,图可以正常显示,如下:

import tkinter as tk
root = tk.Tk()  #定义一个tkinter类root; Tkinter为图形界面库
root.title("随机点名")  #标题
root.geometry('550x450')  #窗体尺寸

img = r'F:\PythonFiles\PycharmFile\ex11CharacterGraph2_GraphIn.png' 
photo = tk.PhotoImage(file=img)
labelImg = tk.Label(root, image=photo) 
label.image = photo
labelImg.pack(side=tk.TOP)

root.mainloop()

但是写在类中,被引用时就无法显示,如下:

def pic_label(self):
    img = r'F:\PythonFiles\PycharmFile\ex11CharacterGraph2_GraphIn.png'  
    photo = tk.PhotoImage(file=img)
    labelImg = tk.Label(self, image=photo)  
    label.image = photo
    labelImg.pack(side=tk.TOP)

import tkinter as tk
root = tk.Tk()  #定义一个tkinter类root; Tkinter为图形界面库
root.title("随机点名")  #标题
root.geometry('550x450')  #窗体尺寸
pic_label(root)  #调用函数
root.mainloop()

解决方案:
在图形显示代码后加入必要的两句代码
labelImg.config(image=photo)
labelImg.image = photo

修正后完整代码如下:

def pic_label(self):
    img = r'F:\PythonFiles\PycharmFile\ex11CharacterGraph2_GraphIn.png'
    photo = tk.PhotoImage(file=img)
    labelImg = tk.Label(self, image=photo)
    labelImg.pack(side=tk.TOP)
    # 以下补充的两句代码非常重要,是保证图在函数中可以被加载的途径
    labelImg.config(image=photo)  
    labelImg.image = photo  

import tkinter as tk
root = tk.Tk()  
root.title("随机点名")  #标题
root.geometry('550x450')  #窗体尺寸
pic_label(root)  #调用函数
root.mainloop()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值