Python tkinter标签图像未使用.update_idletasks()更新

Python tkinter标签图像未使用.update_idletasks()更新,python,tkinter,Python,Tkinter,我有一个问题,我的图像标签将不会更新。我使用了root.update()root.update_idletasks()等的大量组合,我还浏览了互联网上的许多帖子,试图使用他们的解决方案,但都无济于事 我将代码分为一个类和两个函数,第一个函数将检查用户的拼写是否正确,第二个函数将从dict中随机选取一个新单词和图像 问题是图像将不会更新,print命令正在工作,因此类和funcs工作正常 这是到目前为止的代码,我还不熟悉使用Class和init我认为测试tkinter的最佳方法。tkinter的更

我有一个问题,我的图像标签将不会更新。我使用了root.update()root.update_idletasks()等的大量组合,我还浏览了互联网上的许多帖子,试图使用他们的解决方案,但都无济于事

我将代码分为一个类和两个函数,第一个函数将检查用户的拼写是否正确,第二个函数将从dict中随机选取一个新单词和图像

问题是图像将不会更新,print命令正在工作,因此类和funcs工作正常

这是到目前为止的代码,我还不熟悉使用Class和init我认为测试tkinter的最佳方法。tkinter的更新是一个拼写游戏

from tkinter import *
import random

words = {"apple": "apple.gif", "car": "car.gif"}

MAIN_FONT = "Helvetica", 16

root = Tk()
class mainFrame:
    def __init__(self):
        self.pick_random = "..."

        #MAIN TITLE OF THE APP
        main_title = Label(root, text="Spelling", font=MAIN_FONT)
        main_title.pack()
        #END OF MAIN TITLE

        #START OF IMAGE
        self.img = PhotoImage(file=self.pick_another() + ".png")

        self.show_image = Label(root, image=self.img)
        self.show_image.configure(image=self.img)
        self.show_image.image = self.img
        self.show_image.pack()
        #END OF IMAGE

        #START OF ENTRY AND BUTTON INPUTS
        self.main_entry = Entry(root)
        self.submit_btn = Button(root, text="Submit", command=self.submit)

        self.main_entry.pack()
        self.submit_btn.pack()
        #END OF ENTRY AND BUTTON INPUTS

    def submit(self):
        if self.main_entry.get() == self.pick_random:
            print("RIGHT")
            self.pick_another()
        else:
            print("That's not right, try again")

    def pick_another(self):
        print("Called")
        self.pick_random = random.choice(list(words.keys()))
        print(self.pick_random)
        root.update_idletasks()
        return self.pick_random

app = mainFrame()
root.mainloop()
正如我所说的,这样做的工作,第一个图像将显示和输入正确的拼写图像将生成一个新的单词,但图像不会更新

我花了几天时间编写各种脚本,试图让tkinter更新,但它不会


我将非常感谢您在这方面提供的任何帮助

您的标识中有错误您只在程序中使用self.show\u image.configure(image=self.img)一次,因此这是唯一会显示的图像。另外,如果self.main_entry.get()==self.pick_random:将永远不相等,因此不会调用pick_other。添加一个print语句以查看您正在测试哪些值是否相等,即print(self.main\u entry.get(),self.pick\u random)。Bryan Oakley:将其粘贴到此网站时出现了一些缩进问题,这可能就是您看到的,Pycharm处理了我的大部分缩进。Curly Joe,应用程序上应该只有一个图像,它会随机更改。问题是tkinter不会更新图像。您提到的if语句被调用为print(“Right”)。今晚我尝试了很多其他的事情,但仍然没有解决。这只是我缺少的东西