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之数据序列化(json、pickle、shelve)
Mar 30 Python
详解Python3的TFTP文件传输
Jun 26 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
解决numpy数组互换两行及赋值的问题
Apr 17 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
精通php的十大要点(上)
2009/02/04 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP生成压缩文件实例
2015/02/07 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
JS option location 页面跳转实现代码
2008/12/27 Javascript
JS中表单的使用小结
2014/01/11 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
countUp.js实现数字动态变化效果
2019/10/17 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
一份Java笔试题
2012/02/21 面试题
电气工程自动化求职信
2014/03/14 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
期末个人总结范文
2015/02/13 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技