【问题标题】:Tkinter Button Images not working in a loop [duplicate]Tkinter按钮图像不能循环工作[重复]
【发布时间】:2018-04-05 15:02:52
【问题描述】:

我试图在 Tk 中创建一个按钮循环,而每个按钮都嵌入了图像,当我第一次尝试没有图像的循环时它可以工作,但现在当我添加图像时它没有

def menu_window(self, box):
        """Specific function for opening the menu window"""
        window = Toplevel()
        self.activate_window(window, 420, 380)  # window default activation at size 400x400
        menu = self.waiter.full_menu()
        SoupMaker(self.main_url+FOOD_IMAGES).get_images()  # Download menu images.
        counter, rowc = 0, 0
        for item in menu:  # Create a button for every item in the website menu - on click, insert item to order list.
            food_img = ImageTk.PhotoImage(Image.open(item+'.png'))
            bt = Button(window, image=food_img)  # on click
            if counter >= 3 and counter % 3 == 0:
                counter = 0
                rowc += 1
            bt.configure(command=lambda i=item + ' ' + menu[item]: box.insert(END, i))
            bt.grid(sticky='W', row=counter, column=rowc)  # increase row number for every button
            counter += 1
        print 'done buttons'
        window.mainloop()

虽然按钮确实显示在窗口中,但它们是空的并且不可用(配置的命令不起作用)... 这是带有空白图像的屏幕图像:

IMG LINK

【问题讨论】:

  • 请创建一个minimal reproducible example。此外,您可能需要删除对mainloop 的调用。一个普通的 tkinter 程序需要在程序的生命周期内只调用一次。
  • 问题大概是这样的:stackoverflow.com/questions/16424091/…
  • 我的窗口应该跟上,谢谢,但我找到了一个解决方案,添加 bt.image = food_image 应该保存参考
  • 我不知道您所说的“跟上”是什么意思,但不止一次拨打mainloop() 不会让事情变得更好。
  • 为什么不呢?我想要同时激活 2 个主窗口。我有一个主窗口和菜单窗口,它们都应该一起激活

标签: python image button tkinter


【解决方案1】:

问题可能是程序运行时界面没有更新

class GUI:
    def __init__(self,main):
        loop
            main.update()
root=Tk()
GUI(root)
root.mainloop()

如果您的“窗口”是 tkinter 的主要内容,您可以在循环中使用 window.update()

【讨论】:

  • 这实际上不是我的主窗口,但似乎如果我使用“Tk()”实例它不起作用..
  • 好吧,似乎可行的是添加bt.image = food_image,网上有人说必须保存图像的引用
  • 是的,但是如果您的程序正在运行,则每次更改小部件时都必须更新 GUI。
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2019-03-22
  • 2020-04-13
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
相关资源
最近更新 更多