python label显示图片_python 实现在tkinter中动态显示label图片的方法

在编程中我们往往会希望能够实现这样的操作:点击Button,选择了图片,然后在窗口中的Label处显示选到的图片。那么这时候就需要如下代码:

from tkinter import *

from tkinter.filedialog import askopenfilename

def choosepic():

path_=askopenfilename()

path.set(path_)

img_gif=Tkinter.PhotoImage(file='xxx.gif')

l1.config(image=img_gif)

root=Tk()

path=StringVar()

Button(root,text='选择图片',command=choosepic).pack()

e1=Entry(root,state='readonly',text=path)

e1.pack()

l1=Label(root)

l1.pack()

root.mainloop

而由于tkinter只能识别gif格式的图片,如果我们要添加jpg或者png格式的图片的话就要借用PIL进行处理。这时候代码如下:

from tkinter import *

from tkinter.filedialog import askopenfilename

from PIL import Image,ImageTk

def choosepic():

path_=askopenfilename()

path.set(path_)

img_open = Image.open(e1.get())

img=ImageTk.PhotoImage(img_open)

l1.config(image=img)

但这个时候会发现Label并没有如我们所期望的那样变化。

这时候我去网上查找了相关资料,在 https://stackoverflow.com/questions/14291434/how-to-update-image-in-tkinter-label 下看到了回答者给出的解决办法:

photo = ImageTk.PhotoImage(self.img)

self.label1.configure(image = photo)

self.label1.image = photo # keep a reference!

于是在他的启发下我将代码进行了修改,之后完美解决了问题。修改后函数部分的代码如下:

def choosepic():

path_=askopenfilename()

path.set(path_)

img_open = Image.open(e1.get())

img=ImageTk.PhotoImage(img_open)

l1.config(image=img)

l1.image=img #keep a reference

而由于本人才疏学浅,对于造成这种现象的原因尚不理解。不过那名外国回答者也给出了这样修改的原因,在 http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm 上对于为何要keep a reference做出了详尽的解释。

原文如下:

以上这篇python 实现在tkinter中动态显示label图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: python 实现在tkinter中动态显示label图片的方法

本文地址: http://www.cppcns.com/jiaoben/python/262128.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何更改服务器上的数据库文件夹,如何设置数据库文件位置

如何设置数据库文件位置08/07/2014本文内容适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007上一次修改主题: 2007-01-02本主题说明如何使用 Exchange 管理控制台或 Exchange 命令行管理程…

js删除数组中指定元素_js中数组操作详解

今天给大家带来一篇有关数组操作方法的文章。新建数组方法一:通过new运算符创建一个数组构造函数。var arr new Array();方法二:通过方括号直接创建直接量数组。var arr [1,2,3];添加数组中的元素方法一:通过下标添加元素。var arr new Ar…

控制台文字对战游戏 初始版

namespace 对战游戏{ class Program { #region public struct JueSe //创建一个角色对象 { public string XingMing;//这个对象中有这些属性 public int GongJi; public int ShengMing; public int…

查询链接服务器信息,如何通过 SQL Server 链接服务器和分布式查询使用 Excel

作为链接服务器查询 Excel您可以使用企业管理器、系统存储过程或 SQL-DMO(分布式管理对象)将 Excel 数据源配置为 SQL Server 链接服务器。在所有的这些情况中,您总需要设置以下四个属性:链接服务器要使用的名称。连接要使用的 OLE DB 提供程序。Excel 工…

python画精美图案_Python语言的魅力------完美图案

1.画椭圆(代码如下)#!user/bin/python# -*- conding:UTF-8 -*-if __name__ __main__:from Tkinter import *canvas Canvas(width800,height600,bgpurple)canvas.pack(expandYES,fillBOTH)k 1j 1for i in range(0,26):canvas.create_oval(310 - k,250 - k,310 k,250 k,wid…

批量下载,多文件压缩打包zip下载

0、写在前面的话图片批量下载,要求下载时集成为一个压缩包进行下载。从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助。1、先叨叨IO叨叨IO是因为网…

选了combobox里的选项后没激发change事件_35岁前多用利弊分析,35岁后要有“安全边际”...

想冒险,要趁早1/6、距离糟糕的事情发生,还有多远?我现在同时在职场和投资两类战线写文章,读者也开始串戏。前几天在我另外一个投资号上,有人问我:如果你把投资理念原则扩大到生活中,你觉得最有启…

不连续曲线 highcharts_什么是正则曲线和正则曲面

微分几何和微分流形的书上经常提到“正则曲线”和“正则曲面”。其实英文书中写作”Regular Curve“和”Regular Surface“,让人一眼能够了解其大意(这也是我更偏向看英文原版书的原因)。我就想,数学家为啥不翻译成”规则曲线“和…

centos安装 node.js

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum clean all yum makecache yum -y install nodejs转载于:https://www.cnblogs.com/linkenpark/p/7810238.html

11.06

{% extendsdaohang.html %} {% block title %}发布问答{% endblock %} {% block head %}<link rel"stylesheet" href"{{ url_for(static,filenamecss/14.css) }}" type"text/css"> {% endblock %}{% block main %}<div class"box&…

python 安卓模拟器电脑版_【夜神安卓模拟器电脑版】夜神安卓模拟器电脑版 V6.6.0.6免费版官方免费下载_正式版下载-多特软件站...

夜神安卓模拟器是目前非常流行的一款安卓模拟器&#xff0c;相比一般的模拟器它具有更好的兼容性&#xff0c;稳定性&#xff0c;系统基于Android4.4.2&#xff0c;可以更好地兼容安卓软件&#xff0c;安卓游戏&#xff0c;可以放心使用&#xff0c;软件使用非常简单。相关软件…

python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...

一般比价小型的爬虫需求&#xff0c;我是直接使用requests库 bs4就解决了&#xff0c;再麻烦点就使用selenium解决js的异步 加载问题。相对比较大型的需求才使用框架&#xff0c;主要是便于管理以及扩展等。1.ScrapyScrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而…

[W班]第二次结对作业成绩评价

作业地址&#xff1a; https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1016 作业要求&#xff1a; 1、代码具有规范性。 2、实现的程序语言不做限制性要求&#xff0c;但需要能生成Windows平台的可执行文件。C/C/C#编译后即可生成&#xff0c;其他…

resnet50结构_无需额外数据、Tricks、架构调整,CMU开源首个将ResNet50精度提升至80%+新方法

本文是CMU的Zhiqiang Shen提出的一种提升标准ResNet50精度的方法&#xff0c;它应该是首个将ResNet50的Top1精度刷到80%的(无需额外数据&#xff0c;无需其他tricks&#xff0c;无需网络架构调整)。该文对于研究知识蒸馏的同学应该是有不少可参考的价值&#xff0c;尤其是里面提…

msp430项目编程14

msp430中项目---电子测重系统 1、hx711工作原理 2、电路原理说明 3、代码&#xff08;显示部分&#xff09; 4、代码&#xff08;功能实现&#xff09; 5、项目总结 msp430项目编程msp430入门学习转载于:https://www.cnblogs.com/guochaoxxl/p/7818040.html

linq to sql 行转列_SQL 难题:行转列

问题&#xff1a;有一张学生成绩表sc&#xff08;sid 学号&#xff0c;cid 课程&#xff0c;score 成绩&#xff09;&#xff0c;请查询出每个学生的英语、数学的成绩&#xff08;行转列&#xff0c;一个学生只有一行记录&#xff09;。建表语句&#xff1a;create 实现方式1—…

python课程设计矩阵对角线之和,为每个python numpy用不同的值填充矩阵对角线

I saw a function numpy.fill_diagonal which assigns same value for diagonal elements. But I want to assign different random values for each diagonal elements. How can I do it in python ? May be using scipy or other libraries ?解决方案You can use np.diag_i…

SpringMvc 系统启动时加载数据到内存中

SpringMvc 系统启动时加载数据到内存中 学习了&#xff1a;http://blog.csdn.net/newstruts/article/details/18668269 https://www.cnblogs.com/zhengteng/p/5381910.html http://xfxlch.iteye.com/blog/2048049 http://duanxuchu.iteye.com/blog/2181647 结论&#xff1a; 方…

python字符串计算加减乘除代码_Python 70行代码实现简单算式计算器解析

描述&#xff1a;用户输入一系列算式字符串&#xff0c;程序返回计算结果。要求&#xff1a;不使用eval、exec函数。实现思路&#xff1a;找到当前字符串优先级最高的表达式&#xff0c;在算术运算中&#xff0c;()优先级最高&#xff0c;则取出算式最底层的()&#xff0c;再进…

c++测试cpu_测评丨NXP系列 LS1028 LS1046等产品网络性能测试

号外号外&#xff01;继OK1012A-C面市以来&#xff0c;飞凌嵌入式公司相继推出了OK1043A-C、OK1046A-C&#xff0c;以及最新上市的OK1028A-C&#xff0c;OK10XX系列产品也是一个大家族了。正所谓春兰秋菊&#xff0c;各擅胜场。下面小编就各产品的网络性能为您简单介绍一下。先…