当前位置: 首页 > 面试题库 >

PhotoImage不显示与其关联的图像

惠凯歌
2023-03-14
问题内容

我是tkinter的新手,我注意到当我尝试将图片添加为窗口的背景时,它不会显示。这是代码。

from tkinter import *

root = Tk()

def cheese():
    root.destroy()

logo = PhotoImage('../Desktop/logothing.gif')
background_label = Label(root, image=logo)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

explanation = """Flaming Arrows whizz over your hair, War rages around you. Suddenly,
it charges into you. A 8 foot tall mechanical beast the enemy have been training for war.
You have no chance but to fight it. You swing your sword as hard as you can...Only to
leave a minor dent on it's armor. With one blow from its club, you fall unconscious."""

w = Label(root, image=logo).pack(side='right')
w1 = Button(root, text = 'Wake Up',command = cheese, fg='blue', font = "Impact 20")
w1.pack(side='bottom')

w2 = Label(root, 
           justify=LEFT, 
           text=explanation,
           compound = CENTER,
           fg="blue", padx=0,font="ComicSansMS 32 bold")
w2.pack(side='left')

问题答案:

您需要使用指定选项filePhotoImage(file = "foo.gif")

另外,如effbot在PhotoImage的页面中所述,

您必须在Python程序中保留对图像对象的引用,方法是将其存储在全局变量中,或者将其附加到另一个对象。

from tkinter import *

root = Tk()
def cheese():
    root.destroy()
logo = PhotoImage(file = '../Desktop/logothing.gif')
background_label = Label(root, image=logo)
background_label.image = logo
background_label.place(x=0, y=0, relwidth=1, relheight=1)
explanation = """Flaming Arrows whizz over your hair, War rages around you. Suddenly,
it charges into you. A 8 foot tall mechanical beast the enemy have been training for war.
You have no chance but to fight it. You swing your sword as hard as you can...Only to
leave a minor dent on it's armor. With one blow from its club, you fall unconscious."""
w= Label(root, image=logo).pack(side='right')
w1 = Button(root, text = 'Wake Up',command = cheese, fg='blue', font = "Impact 20")
w1.pack(side='bottom')

w2 = Label(root, 
           justify=LEFT, 
           text=explanation,
           compound = CENTER,
           fg="blue", padx=0,font="ComicSansMS 32 bold")
w2.pack(side='left')


 类似资料:
  • 我正在尝试在Red Hat Enterprise Linux 8(CentoOS 8)虚拟机中设置构建服务器。 我通过运行 然后我运行了sudo podman pull mcr。微软com/dotnet/core/aspnet:3.1-buster-slim从docker中提取容器图像: 试图拉mcr。微软com/dotnet/core/aspnet:3.1-buster-slim。。。获取图像源

  • 图形与显示 [AGP] agp={off|try_unsupported} off 表示关闭内核的AGP(CONFIG_AGP)支持; try_unsupported 表示尝试驱动那些不受支持的芯片(可能会导致系统崩溃或数据错误) [HW,DRM] gamma=浮点数 设置显示器的Gamma值。 video.brightness_switch_enabled={0|1} [背景知识]如果ACPI

  • 我目前正在一个项目中使用MPAndroidChart。我正在使用带有自定义BarChartRenderer和XaxiRenderer的条形图。 我面临的问题是,我希望与高亮显示(单击)栏关联的标签与该栏的颜色相同。 有没有办法通过重写lib函数/类来做到这一点? 这是我的图表实际状态的屏幕截图(10月16日的条形图突出显示)。 这是我想要的最终结果 有人试过在MPAndroidChart上做这种事

  • 它应该显示一个与掷骰子一致的图像,但什么也没有发生。有问题的图像在包中(如果有关系,请单击并拖入项目窗口)。我在system.out.print中添加了t,以便显示Dice1和2的结果,这样我就知道这是有效的。 我还需要添加一些东西来使它看起来像吗?我以前从未在JavaFX中使用过实际的图像....总的来说,我对JavaFX是新手。 GetChildren c:\users\ethan c.b的错

  • 我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下:

  • 我正在使用此代码显示图像 图片存在于storage\app\public\images上,但它没有显示在我的页面上,顺便说一句,我已经创建了php artisan storage:link