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中使用OpenCV进行人脸检测的例子
Apr 18 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
python 搜索大文件的实例代码
Jul 08 Python
python pygame实现球球大作战
Nov 25 Python
python代码如何实现余弦相似性计算
Feb 09 Python
python实现canny边缘检测
Sep 14 Python
Python绘制数码晶体管日期
Feb 19 Python
golang中的空接口使用详解
Mar 30 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
星际原理概述
2020/03/04 星际争霸
js下函数般调用正则的方法附代码
2008/06/22 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
js中this用法实例详解
2015/05/05 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
python基础教程之udp端口扫描
2014/02/10 Python
Python使用py2exe打包程序介绍
2014/11/20 Python
Python中用Spark模块的使用教程
2015/04/13 Python
python中PIL安装简单教程
2016/04/21 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
python实现k-means聚类算法
2018/02/23 Python
python 实现倒排索引的方法
2018/12/25 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
数控技术应用个人求职信范文
2014/02/03 职场文书
英语教师自荐信
2014/05/26 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
SpringBoot生成License的实现示例
2021/06/16 Java/Android
使用feign服务调用添加Header参数
2021/06/23 Java/Android
Python内置的数据类型及使用方法
2022/04/13 Python