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 27 Python
python运行时间的几种方法
Jun 17 Python
python学生管理系统代码实现
Apr 05 Python
python中for循环输出列表索引与对应的值方法
Nov 07 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python常见数据类型转换操作示例
May 08 Python
python3.7简单的爬虫实例详解
Jul 08 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
构建高效的python requests长连接池详解
May 02 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 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高手?学会“懒惰”的编程
2006/12/05 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
JavaScript 原型与继承说明
2010/06/09 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
python zip文件 压缩
2008/12/24 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Django中url的反向查询的方法
2018/03/14 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
3分钟演讲稿
2014/04/30 职场文书
中学生思想品德评语
2014/12/31 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
建党伟业观后感
2015/06/01 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
网络舆情信息简报
2015/07/21 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS