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中的filter和lambda函数的使用
Apr 07 Python
在Django的URLconf中使用命名组的方法
Jul 18 Python
详解Django框架中的视图级缓存
Jul 23 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
Python远程视频监控程序的实例代码
May 05 Python
Pandas分组与排序的实现
Jul 23 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
python数字图像处理:图像简单滤波
Jun 28 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中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
python跨文件使用全局变量的实现
2020/11/17 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
大二学习计划书范文
2014/04/27 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
美容院管理规章制度
2015/08/05 职场文书
青年教师听课心得体会
2016/01/15 职场文书
运动会主持人开幕词
2016/03/04 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫
优化Mysql查询的示例
2022/04/26 MySQL