python Tkinter的图片刷新实例


Posted in Python onJune 14, 2019

调用python自带的GUI制作库

一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入:

import tkinter

后,显示:

_ImportError: No module named tkinter_

以为是没有安装,还利用apt-get install 命令安装了一堆东西,安装完了发现还是没有用。(⊙?⊙)b

后来看到如果是用的python2.7的话,需要输入

import Tkinter

然后就可以用了。

显示连续刷新的图片

开始用的TK的Label功能来显示图片,需要等到调用mainloop()后才会显示图片,没找到可以刷新图像的方法;后来采用Canvas,才找到了可以不用等到mainloop()就可以显示图片的方法,代码如下:

from Tkinter import *
from PIL import Image, ImageTk
import time
import os
import cv2
num=0
tk=Tk()
canvas=Canvas(tk,width=500,height=500,bg = 'white')
while num<7:
 num +=1
 filename = str(num) + '.jpg'
 if os.path.isfile(filename):
 img1 = cv2.imread(filename)
 im1 = Image.fromarray(cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)) 
 img = ImageTk.PhotoImage(image = im1)
 #img = ImageTk.PhotoImage(file = filename)
 itext = canvas.create_image((250,150),image = img)
 canvas.pack()
 tk.update()
 tk.after(1000)
tk.mainloop()

再后来发现用Label也可以实现图片的刷新,关键在于是否加了:

tk.updata()

使用Label的程序如下,其中的.grid()用于设置显示的位置:

#coding=utf-8
import Tkinter as tk
from PIL import Image, ImageTk
import cv2
import os
import time

def btnHelloClicked():
 labelHello.config(text = "Hello Tkinter!")

def resize(w,h,w_box,h_box,im):
 f1 = 1.0*w_box/w
 f2 = 1.0*h_box/h
 factor = min([f1, f2])
 width = int(w*factor)
 height = int(h*factor)
 return im.resize((width,height),Image.ANTIALIAS)

top = tk.Tk()
#-------------- image 1 --------------
for N in range(1,10):
 filename = str(N) + '.jpg'
 if os.path.isfile(filename):
 #top = tk.Toplevel()#tk.Tk()
 top.title("test the net.")
 #string
 labelHello = tk.Label(top,text = str(N),height = 5,width = 20,fg = "blue")
 labelHello.grid(row = 0,column = 1)
 img1 = cv2.imread(filename)
 im1 = Image.fromarray(cv2.cvtColor(img1,cv2.COLOR_BGR2RGB))
 #---resize the image to w_box*h_box
 w_box = 500
 h_box = 450
 w,h = im1.size
 im_resized1 = resize(w,h,w_box,h_box,im1)

 bm1 = ImageTk.PhotoImage(image = im_resized1)
 label1 = tk.Label(top,image = bm1,width = w_box,height = h_box)
 label1.grid(row = 1,column = 0)
 top.update()
 top.after(1000) 
top.mainloop()

其中尝试了将 tk.Tk()放在循环内部,但是运行到第二个循环的时候,会报错:

_tkinter.TclError: image "pyimage2" doesn't exist

需要将tk.Tk替换为tk.Toplevel(),但是每个循环都会新出现两个面板。

以上这篇python Tkinter的图片刷新实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python运用于数据分析的简单教程
Mar 27 Python
python获取文件扩展名的方法
Jul 06 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
Python装饰器用法与知识点小结
Mar 09 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
详解Python yaml模块
Sep 23 Python
python中把元组转换为namedtuple方法
Dec 09 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 #Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 #Python
Python中py文件转换成exe可执行文件的方法
Jun 14 #Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 #Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 #Python
Python Tkinter 简单登录界面的实现
Jun 14 #Python
python tkinter实现界面切换的示例代码
Jun 14 #Python
You might like
PHP类中Static方法效率测试代码
2010/10/17 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
javascript 面向对象的JavaScript类
2010/05/04 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python 伯努利分布详解
2020/02/25 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
联想台湾官网:Lenovo TW
2018/05/09 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
电子商务专业学生的自我鉴定
2013/11/28 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL