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 24 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Python后台开发Django会话控制的实现
Apr 15 Python
Django中信号signals的简单使用方法
Jul 04 Python
python 函数中的参数类型
Feb 11 Python
Python内存映射文件读写方式
Apr 24 Python
Django Form设置文本框为readonly操作
Jul 03 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 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循环获取GET和POST值的代码
2008/04/09 PHP
又一个php 分页类实现代码
2009/12/03 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
利用python求相邻数的方法示例
2017/08/18 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python读文件的步骤
2019/10/08 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
应届生.NET方向面试题
2015/05/23 面试题
打架赔偿协议书范本
2014/10/26 职场文书
2014年创卫工作总结
2014/11/24 职场文书
初三毕业感言
2015/07/31 职场文书
学风建设主题班会
2015/08/17 职场文书
新年寄语2016
2015/08/17 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
用python自动生成日历
2021/04/24 Python
在redisCluster中模糊获取key方式
2021/07/09 Redis
Sql Server之数据类型详解
2022/02/28 SQL Server
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby