【问题标题】:How do I insert image如何插入图像
【发布时间】:2020-07-02 08:05:20
【问题描述】:

如何在我的 python-tkinter 项目中插入图像? 我想在我的 tkinter 按钮中插入图像,我用这个代码试了一下:

photo = PhotoImage(r"Link to folder containing image\image.png")
photoimage = photo.subsample(3,3) # because I want image+text in button
st = Button(root, text='Sample', bg='grey', width=15, height=7, command=callback , image = photoimage, compound= LEFT, font=('Comic Sans Ms',20,'italic'))
st.grid(row=2, column=0, pady=20, side = TOP)

但是这段代码不起作用,我正在使用 SubLime Text 3 IDE 来构建我的项目

【问题讨论】:

  • 您能否详细说明什么不起作用?图像不显示吗?有错误吗?
  • “不起作用”是什么意思?它会抛出错误吗?如果是这样,错误是什么?
  • 当我运行我的程序时它说:无法识别图像文件中的数据,即使我使用的是 png 图像文件

标签: python tkinter


【解决方案1】:

这是您需要的代码:

from PIL import ImageTk, Image
photo = ImageTk.PhotoImage(Image.open("1.Files/UI/edit.png")

希望有帮助!

【讨论】:

    【解决方案2】:

    问题可能出在文件路径上。尝试逃避它。这意味着您在编写路径时必须连续放置两个反斜杠而不是一个,因为它认为您正在尝试转义特殊字符。您还需要确保通过在路径前输入file= 将路径传递给file 参数。

    photo = PhotoImage(file="Link to folder containing image\\image.png")
    

    【讨论】:

    • 让我告诉你我已经尝试过什么:首先我将包含图像文件的文件夹添加到项目选项卡中的 sublime 文本中,然后我尝试了 '''photo = PhotoImage(file=icons/Sample .png')''' 我也按照您在回答中所说的进行了尝试,但仍然遇到相同的错误,以检查我的图像文件是否有任何问题,我还尝试插入另一个 .png 图像,但它也是没有帮助
    • 嗯,问题可能出在photo.subsample() 上,但我不确定。我不是很熟悉。
    【解决方案3】:

    如果按钮没有完全显示,那么您可能忘记打包按钮。尝试在定义按钮的行尾添加.pack(side=TOP) (st = Button(...).pack(side=TOP))

    这对我有用。

    【讨论】:

    • 问题中的代码显示他们已经在按钮上调用grid
    • @Bhavye Mathur 我也尝试使用包几何管理器,但没有帮助,出现同样的错误“无法识别图像文件中的数据
    • hmmm... 这确实为我解决了这个问题,即使我有下面的网格功能。但我会尝试其他方法。
    • 当我写 '''photo= PhotoImage(file='star.gif') photo=photo.subsample(4,4) st=Button(tab1, text='OK', width= 100, height=70, image=photo, complex= LEFT) st.pack(pady=20, side=LEFT) 然后我的图像出现但它不在按钮的左侧它覆盖整个按钮而不是图像按钮出现在窗口的左侧
    猜你喜欢
    • 2011-01-14
    • 2010-10-07
    • 1970-01-01
    • 2016-03-14
    • 2019-09-18
    • 2019-02-22
    • 2015-09-29
    相关资源
    最近更新 更多