首页 > 解决方案 > 为什么 tk windows 在有动作之前以错误的顺序显示

问题描述

我想在用户在我的 Tkinter 按键游戏中获胜后播放 gif,根据@Matiiss 的想法,我可以通过导入Win.py文件(使用 Tkinter 显示 gif)来播放 gif,并将其嵌入到提示中按钮有。但是,现在游戏开始之前显示gif,我不知道为什么,因为我在所有代码之前导入了文件import Win(win是我的文件名),并且按钮的命令是

button2 = tk.Button(self, text="Group",
                        command=lambda: [controller.show_frame(Success),Win])  # I put them in a list in the command=lambda:
button2.pack()

我以为用户会按下按钮 2 并显示 gif。但是,gif在游戏开始之前播放,我尝试了另一种方式:( from Win import Imagelabel哪个imagelabel是gif播放的类)。但是还是失败了,在level 1按第一个按钮后显示gif。
我还看到自己做的Win模块的错误输出:

invalid command name "1725059674432next_frame"
    while executing
"1725059674432next_frame"
    ("after" script)

这是功能next_frame

    def next_frame(self):
    if self.frames:
        self.config(image=next(self.frames))
        self.after(self.delay, self.next_frame)

由于imagelabel上面有一个类,所以有一个缩进。lambda删除和command: [controller.show_frame(Success),Win])直接使用的解决方案也是如此

标签: pythontkinter

解决方案


推荐阅读