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 re模块的高级用法详解
Jun 06 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
Python箱型图处理离群点的例子
Dec 09 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
python实现单机五子棋
Aug 28 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Django自带的用户验证系统实现
Dec 18 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/03 日漫
Terran历史背景
2020/03/14 星际争霸
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
在php中取得image按钮传递的name值
2006/10/09 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
微信支付开发发货通知实例
2016/07/12 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
angularjs指令之绑定策略(@、=、&amp;)
2017/04/13 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
创业计划实施的7大步骤
2014/02/05 职场文书
驾驶员安全责任书
2014/07/22 职场文书
目标责任书格式
2014/07/28 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
本溪关门山导游词
2015/02/09 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书