鱼C论坛

 找回密码
 立即注册
查看: 2537|回复: 8

新人求助|tkinter动态显示图片问题

[复制链接]
发表于 2020-2-26 21:05:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 诸己h 于 2020-2-26 21:18 编辑
  1. from tkinter import *
  2. from  PIL import Image,ImageTk
  3. import os
  4. import time


  5. #我希望得到可以在label中动态显示图片的程序
  6. root = Tk()

  7. label1 = Label(root,text='tupian')

  8. for i in range(14):
  9.     p3 = os.getcwd() + '\\1\\'#一个路径
  10.     j = -1
  11.     j = j + 1
  12.     savefig =  p3+ '201' + '第%d张' % (j + 1)#j用于计算这是第几张图片
  13.     img3 = Image.open(str(savefig)+'.png')  # 打开图片
  14.     photo3 = ImageTk.PhotoImage(img3)  # 用PIL模块的PhotoImage打开
  15.     label1["image"] = photo3#这里用image赋值的方式为label添加图像
  16. label1.pack()

  17.    
  18. mainloop()
复制代码




我这两天在听小甲鱼的tkinter板块,希望在label中动态的生成已经画制好的图片,所以想到了使用循环去给label的image属性进行赋值,但是实际上我的p3路径中有许多图片。但是这个循环只显示了第一张图片,就不再显示了,label.pack()放在循环里面外边都试过。
折腾一下午了,在网络上也查询过许多资料,都不能解决这个问题,万般无奈只好求助于鱼c的各位,希望能够得到大家的思路,万分感激。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-26 21:24:12 | 显示全部楼层
想要循环显示有点困难吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 21:37:29 | 显示全部楼层
zltzlt 发表于 2020-2-26 21:24
想要循环显示有点困难吧

但是这是我的需求呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 21:38:22 | 显示全部楼层
zltzlt 发表于 2020-2-26 21:24
想要循环显示有点困难吧

就是只要能够持续的显示我一个文件夹里面的图片就好,或许用其他也可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-26 21:41:14 | 显示全部楼层
诸己h 发表于 2020-2-26 21:38
就是只要能够持续的显示我一个文件夹里面的图片就好,或许用其他也可以

觉得这种程序用 Pygame 做会更好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 22:24:20 | 显示全部楼层
zltzlt 发表于 2020-2-26 21:41
觉得这种程序用 Pygame 做会更好

pygame可以实现吗,我去试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 10:17:35 From FishC Mobile | 显示全部楼层
Tkinter 加 多线程实现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 11:18:26 | 显示全部楼层
XiaoPaiShen 发表于 2020-2-27 10:17
Tkinter 加 多线程实现

请问如何实现多线程呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 17:06:17 | 显示全部楼层
本帖最后由 诸己h 于 2020-3-1 17:21 编辑

本问题已经解决,通过刷新根窗口就可以实现
  1. from tkinter import *
  2. import time
  3. from  PIL import Image,ImageTk


  4. root = Tk()
  5. root.geometry('500x800')

  6. label = Label(root, text = 'wode')
  7. label.pack()

  8. for i in range(10):
  9.     savefi1 = 'E:\\pycharm\\tkinter写的软件\\封装代码\\Drawer3D\\1'
  10.     img1 = Image.open(savefi1+'\\201第%d张'%(i+1)+'.png')  # 打开图片
  11.     photo1 = ImageTk.PhotoImage(img1)  # 用PIL模块的PhotoImage打开
  12.     label['image'] = photo1
  13.     print(i)
  14.     root.update()#再循环中加入此刷新就可以

  15. mainloop()
复制代码
上传.gif
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表