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中的引用和拷贝浅析
Nov 22 Python
为python设置socket代理的方法
Jan 14 Python
python以环状形式组合排列图片并输出的方法
Mar 17 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
Python检测生僻字的实现方法
Oct 23 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python3 线性回归验证方法
Jul 09 Python
在Python中append以及extend返回None的例子
Jul 20 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
一个分页的论坛
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
Yii使用技巧大汇总
2015/12/29 PHP
微信支付开发交易通知实例
2016/07/12 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
python解决网站的反爬虫策略总结
2016/10/26 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
python模糊图片过滤的方法
2018/12/14 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
详解python播放音频的三种方法
2019/09/23 Python
python实现猜数字游戏
2020/03/25 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
动画设计系毕业生求职信
2014/07/15 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
财务经理岗位职责
2015/01/31 职场文书
道德与公民自我评价
2015/03/09 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Nginx限流和黑名单配置
2022/05/20 Servers