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

使用图像更新Tkinter标签

陆甫
2023-03-14
问题内容

我在使用Tkinter和PIL更新标签时遇到了一个“小”问题。

当我按下起 按钮时,它应该显示foo2,但是它只显示白色屏幕。有什么建议?

这是我的代码:

from PIL import Image as Im
from Tkinter import *

class MyWindow():

    def __init__(self):
        self.root = Tk()

        self.maskPng = Im.open("foo.png")
        self.maskPng.convert("RGBA")
        self.maskPng.save("bar.gif", "GIF")

        self.mask = PhotoImage(file = "bar.gif")

        self.show = Label(self.root, image = self.mask).pack(side = "left")

        self.speedBTN = Button(self.root, text = "cheese", command = self.speed).pack(side = "right")

        self.changed = False


   def speed(self):
        self.speedImg = Im.open('foo2')
        self.speedImg = self.speedImg.convert("RGBA")

        # overlaying foo and foo2 -- it works I tested it
        self.maskPng.paste(self.speedImg, (0,0), self.speedImg)


        self.render()

    def render(self):
        self.mask = PhotoImage(self.speedImg)
        self.show.configure(image = self.mask)
        self.show.image = self.mask

    def draw(self):
        self.root.mainloop()


    main = MyWindow()
    main.root.mainloop()

问题答案:

好吧,我认为原因self.showNone当您按下按钮时。这是因为此行:

self.show = Label(self.root, image = self.mask).pack(side = "left")

应该:

self.show = Label(self.root, image = self.mask)
self.show.pack(side = "left")

出现这种情况,是因为packgrid等回报None



 类似资料:
  • 我一直在做一个项目,更新标签并将其绘制在Arduino的实时图形中。它输出温度和湿度。我的arduino串行输出如下所示: 我使用这行代码在分离串行数据输入python: 我可以将值分开,并在各自的标签中更新它们。但是当我使用相同的序列值动态更新图时,我没有让它工作。我想同时更新它们。我得到的错误就像 这个错误一直在继续,我知道也许我的代码不是最合适的方法来处理这个问题或实现我想要的东西,但这是我

  • 问题内容: 我有一个活动,该活动的TabHost包含一组TabSpec,每个TabSpec都有一个listview,其中包含要由该选项卡显示的项目。创建每个TabSpec时,我设置一个图标以显示在选项卡标题中。 TabSpec是通过以下方法创建的,该方法循环创建适当数量的选项卡: 有几个实例,我希望能够更改程序执行过程中每个选项卡中显示的图标。目前,我正在删除所有选项卡,并再次调用上述代码以重新创

  • 问题内容: 我正在尝试使用tkinter.Label()小部件向tkinter GUI显示图像。该过程看起来很简单明了,但是此代码不起作用! 码: 当我们执行此代码时,它不会编译,并给出一个错误: 当我在没有其父项的情况下进行定义时,不会发生编译错误,但是GUI不会显示任何图像! 任何人都可以找出问题所在吗? 问题答案: 当我们尝试在Ipython中运行以上代码时,会发生此问题。可以通过换线来解决

  • 问题内容: 我正在尝试在python 2.7中创建一个tkinter项目,用户可以在其中调整窗口的大小,并且窗口中的所有内容都将随之缩放。这意味着画布,画布中的形状以及最重要的是PhotoImages将随窗口缩放。我的问题是我一生都无法正确调整图像大小。我知道并且为此目的而存在,但是首先 在50x50像素的图像中没有明显变化,对于zoom(2,2)也相同。重要的是要注意我知道PIL存在,但是出于本

  • 我有多个微服务,我使用docker compose进行开发部署。当microservices代码库中有一些更改时,我会触发ci作业来重新部署它们。我有下面的脚本来做这件事。但每次我都必须从头开始构建所有图像,然后运行它们。完成所有这些操作后,我得到了图像。所以我使用最后一个脚本来删除它们。你有什么建议使这个过程更实用?是否有任何方法可以更新现有图像而不使用新的更改将其删除? 其他信息:我正在使用

  • 问题内容: 所以我有两个图像,我想显示在彼此的顶部。这个 上面的图像应该是透明的,这样底部的图像是透明的 可见。 Here is my code so far: With the face in the bottom and the eyes on top. 问题答案: Try this 我没有你的两个源图像,所以我不能确定它将与工作 他们。如有任何问题,请提供两者的原件。