博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python Tkinter的image不能显示的问题
阅读量:4294 次
发布时间:2019-05-27

本文共 973 字,大约阅读时间需要 3 分钟。

Tkinter是python自带的一个图形库,可以提供一些简单的图形功能

最近使用Tkinter的Canvas绘图的时候出现图像不能正常显示的问题

(快速解决方法:个人意见是将mainloop和photoimage对象放在同一作用域下,下面是测试实例)

from Tkinter import *def foo(app):    app.wm_maxsize(400,400)    canvas=Canvas(app,width=400,height=400)    canvas.pack()    im=PhotoImage(file='python.gif')    canvas.create_image(100,100,image=im)    app.mainloop()app=Tk()foo(app)图片显示正常如果将mainloop放在函数外面:def foo(app):    app.wm_maxsize(400,400)    canvas=Canvas(app,width=400,height=400)    canvas.pack()    im=PhotoImage(file='python.gif')    canvas.create_image(100,100,image=im)app=Tk()foo(app)app.mainloop()则图片不能正常显示这是如果将图片设为全局变量im=PhotoImage(file='python.gif')def foo(app):        app.wm_maxsize(400,400)        canvas=Canvas(app,width=400,height=400)    canvas.pack()        canvas.create_image(100,100,image=im)app=Tk()foo(app)app.mainloop()这时则又能正常显示
看到这种情况。。。只能想网络寻求帮助了,看到有人说是Canvas()函数的缺陷,说是在函数里运行的时候局部im对象被gc回收了,所以不能正常显示。。。得声明为全局变量

表示不是很清楚,作为一名小白,我只能说好像mainloop要和im对象的作用域一致才能正常显示图片。。。

转载地址:http://tvuws.baihongyu.com/

你可能感兴趣的文章
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>
设计模式19_状态
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则15_万事俱备
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>