Python中tkinter无法同时显示多个image的解决方法及pack与place解析

 更新时间:2023年02月16日 09:35:02   作者:ShineLee  
这篇文章主要介绍了Python中tkinter无法同时显示多个image的解决方法及pack与place解析,本文给大家分享问题原因解析及解决方案,需要的朋友可以参考下

0、问题

在用Tkinter进行编程时,需要在一个Frame下显示多个图片,但是不管怎么设置都是只显示最后一张,就像这样:

代码

for i in range(3):
    ...
    image=ImageTk.PhotoImage(f'img{i}.png')#分别打开img1,img2,img3并显示
    Label(window, image=image, bg='green').place(x=60 + rw * i, y=500)

结果

本来红线处还有两幅图,总共三幅,但是现在只显示了最后一幅。

1、原因

在上述代码最后一行,我们这样写:

Label(window, image=image, bg='green').place(x=60 + rw * i, y=500)

在执行过程中,每个image变量会覆盖上一个image变量,导致运行过程中总是只有1个image参与了绘制,从而只显示一个image

2、解决

给不同的image分别命不同的名,或者干脆用一个List:

image=[]
for i in range(3):
    ...
    image.append(ImageTk.PhotoImage(f'img{i}.png')
    Label(window,image=image[i],bg='green').place(x=60+rw*i,y=500)

补充

pack与place是没有返回值的,所以在需要对要素进行后续操作时,不要直接将该要素的生成和放置写在同一句话中,就像这样:

Label(window, text='直方图:', font=('宋体', 16)).place(x=0, y=60)

最好分开写:

L1=Label(window, text='直方图:', font=('宋体', 16))
L1.place(x=0, y=60)

如果像一开始那样写L1=XXX.place(),那么最终得到的L1将是NoneType

到此这篇关于Python中tkinter无法同时显示多个image的解决方法,pack与place的文章就介绍到这了,更多相关Python tkinter无法同时显示多个image内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现处理逆波兰表达式示例

    Python实现处理逆波兰表达式示例

    这篇文章主要介绍了Python实现处理逆波兰表达式操作,结合实例形式分析了逆波兰表达式的概念、原理及Python针对逆波兰表达式的定义与计算相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python+Tkinter实现RGB数值转换为16进制码

    Python+Tkinter实现RGB数值转换为16进制码

    这篇文章主要为大家详细介绍了Python如何利用Tkinter编写一个RGB数值转换为16进制码的小工具,文中的示例代讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • Python实现使用卷积提取图片轮廓功能示例

    Python实现使用卷积提取图片轮廓功能示例

    这篇文章主要介绍了Python实现使用卷积提取图片轮廓功能,涉及Python数值运算与图像处理相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python中使用asyncio 封装文件读写

    Python中使用asyncio 封装文件读写

    本文主要给大家简单讲解如何用 asyncio.Future 对象来封装文件的异步读写。有需要的小伙伴可以参考下
    2016-09-09
  • pandas实现数据合并的示例代码

    pandas实现数据合并的示例代码

    本文主要介绍了pandas实现数据合并的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • python浅拷贝与深拷贝使用方法详解

    python浅拷贝与深拷贝使用方法详解

    浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联
    2022-11-11
  • python中用ggplot绘制画图实例讲解

    python中用ggplot绘制画图实例讲解

    在本篇文章里小编给大家整理的是一篇关于python中用ggplot绘制画图实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-01-01
  • Python+OpenCV实现相机标定的方法详解

    Python+OpenCV实现相机标定的方法详解

    opencv中内置了张正友的棋盘格标定法,通过一些姿态各异的棋盘格图像,可以标定相机的内外参数,本文为大家介绍OpenCV进行相机标定的具体方法,希望对大家有所帮助
    2023-05-05
  • Pytorch GPU内存占用很高,但是利用率很低如何解决

    Pytorch GPU内存占用很高,但是利用率很低如何解决

    这篇文章主要介绍了Pytorch GPU内存占用很高,但是利用率很低的原因及解决方法,具有很好的参考价值,希望对大家 有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • tensorflow 环境变量设置方式

    tensorflow 环境变量设置方式

    今天小编就为大家分享一篇tensorflow 环境变量设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论