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 03 Python
Python with的用法
Aug 22 Python
Python中使用partial改变方法默认参数实例
Apr 28 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
Python3中的json模块使用详解
May 05 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
python交互界面的退出方法
Feb 16 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
小程序云开发实战小结
2018/10/25 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
python 从文件夹抽取图片另存的方法
2018/12/04 Python
Python阶乘求和的代码详解
2020/02/14 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
百度软件工程师职位
2013/02/14 面试题
应聘自荐书
2013/10/08 职场文书
应届生财务会计求职信
2013/11/05 职场文书
导购员的岗位职责
2014/02/08 职场文书
小学生手册家长评语
2014/04/16 职场文书
技术员岗位职责范本
2015/04/11 职场文书
公司开会通知
2015/04/20 职场文书