python - 为什么我不能在 tkinter 中“打包”或“网格”一个 ImageTk.PhotoImage?
问题描述
我的代码:
my_img = Image.open(r"C:\Users\talha\OneDrive\Documents\Python\Tkinter\My First Tkinter Program\Mt Everest.jpg").resize((500,500))
my_img = ImageTk.PhotoImage(my_img)
my_img.pack()
错误信息:
AttributeError: 'PhotoImage' object has no attribute 'pack'
解决方案
AnImageTk.PhotoImage
不是tkinter
小部件,但可以成为其中的一部分。然后它将是您想要pack()
或创建的小部件grid()
。
下面是将一个放在tkinter.Label
小部件上(然后打包)的示例:
from PIL import Image, ImageTk
import tkinter as tk
filepath = r"C:\Users\talha\OneDrive\Documents\Python\Tkinter\My First Tkinter Program\Mt Everest.jpg"
root = tk.Tk()
image = Image.open(filepath).resize((500, 500)) # PIL image object.
my_img = ImageTk.PhotoImage(image) # Convert to tkinter PhotoImage.
my_label = tk.Label(image=my_img) # Put it on a Label.
my_label.img = my_img # Attach reference to image to prevent its deletion.
my_label.pack()
root.mainloop()
推荐阅读
- delphi - 如何更改 DBgrid 行值?
- php - php mysqli 唯一的第一个字符没有正确出现
- wpf - ContextMenu - 使用 ItemContainerStyle 时的奇怪行为
- bash - 用 Bash 比较文件
- reactjs - 反应保存 api 请求
- python - 如何将pyspark聚合函数结果输出为字符串?
- c++ - 当我在我的姓名输入部分输入超过 1 个单词时,代码会无限次保存数据
- reactjs - 有没有更好的方法可以根据数据类型从同一组件中的 API 获取不同的数据?
- visual-studio - Visual Studio 不显示文件夹和类
- javascript - 如何阻止可拖动元素从画布中拖动