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代码来绘制彭罗斯点阵的教程
Apr 03 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
python绘制散点图并标记序号的方法
Dec 11 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Python如何使用OS模块调用cmd
Feb 27 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
Python基于pip实现离线打包过程详解
May 15 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
python分布式爬虫中消息队列知识点详解
Nov 26 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面试题集锦
2012/03/08 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
详解node中创建服务进程
2017/05/09 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
Python中bisect的用法
2014/09/23 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
python代码实现猜拳小游戏
2020/11/30 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
HR喜欢的自荐信格式
2013/10/08 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
村级换届选举方案
2014/05/10 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
python套接字socket通信
2022/04/01 Python