鱼C论坛

 找回密码
 立即注册
查看: 3605|回复: 12

[已解决]tkinter问题

[复制链接]
发表于 2023-7-23 09:40:56 | 显示全部楼层
在Python的tkinter库中,可以使用Text组件的image_create方法来插入图片。但是,如果你想插入多个图片,你需要为每个图片创建一个独立的PhotoImage对象,并且你需要保持对这些PhotoImage对象的引用,否则它们可能会被Python的垃圾收集器删除,导致图片无法显示。

以下是一段示例代码,说明如何在Text组件中插入多个图片:

  1. from tkinter import *
  2. from PIL import Image, ImageTk

  3. # 创建Tk窗口
  4. root = Tk()

  5. # 创建Text组件
  6. text = Text(root)
  7. text.pack()

  8. # 创建并插入第一个图片
  9. image1 = Image.open('image1.png')
  10. photo1 = ImageTk.PhotoImage(image1)
  11. text.image_create(END, image=photo1)
  12. # 保持对PhotoImage对象的引用
  13. text.image1 = photo1

  14. # 创建并插入第二个图片
  15. image2 = Image.open('image2.png')
  16. photo2 = ImageTk.PhotoImage(image2)
  17. text.image_create(END, image=photo2)
  18. # 保持对PhotoImage对象的引用
  19. text.image2 = photo2

  20. # 启动Tk窗口的主循环
  21. root.mainloop()
复制代码


在这段代码中,我们首先创建了一个Tk窗口和一个Text组件。然后,我们打开了两个图片文件,创建了两个PhotoImage对象,并使用Text组件的image_create方法将这两个图片插入到Text组件中。最后,我们通过将PhotoImage对象保存为Text组件的属性,保持了对这些对象的引用,防止它们被垃圾收集器删除。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 02:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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