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 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python中as用法实例分析
Apr 30 Python
Python构建网页爬虫原理分析
Dec 19 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
django序列化serializers过程解析
Dec 14 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
python爬虫要用到的库总结
Jul 28 Python
python如何将图片转换素描画
Sep 08 Python
python基于opencv 实现图像时钟
Jan 04 Python
python读取mat文件生成h5文件的实现
Jul 15 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模板页面中分页代码的解析
2009/02/06 PHP
PHP Directory 函数的详解
2013/03/07 PHP
给ECShop添加最新评论
2015/01/07 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
Python 25行代码实现的RSA算法详解
2018/04/10 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
暑假实习求职信范文
2013/09/22 职场文书
法院实习人员自我鉴定
2013/09/26 职场文书
工程管理英文求职信
2014/03/18 职场文书
工作分析计划书
2014/04/30 职场文书
医院义诊活动总结
2014/07/04 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
个人债务授权委托书
2014/10/17 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Python 统计序列中元素的出现频度
2022/04/26 Python
windows server2008 开启端口的实现方法
2022/06/25 Servers