Python Tkinter 销毁顶层 window 缺少参数

Python Tkinter destroy toplevel window missing argument

我的代码打开一个带有按钮的 window。单击按钮时,将创建顶层 window 并销毁根 window。单击顶层 window 上的按钮时,将打开一个消息框。我希望在用户按下消息框的确定按钮时关闭 Toplevel Window。 按确定会导致 TypeError: destroy() missing 1 required positional argument: 'self'

我真的不明白为什么它不起作用,因为顶层 window 作为参数传递给 destroy 方法。

import tkinter as tk
from tkinter import messagebox


def main():

    root = tk.Tk()
    root.title("Hauptmenü")

    mainmenue(root)

    root.mainloop()


def mainmenue(root):
    button_rennen = tk.Button(root, text="New Window", width=20,
                              command=lambda: call_window(root))
    button_rennen.pack()


def call_window(root):
    root.destroy()
    rframe = tk.Toplevel

    button = tk.Button(text="Wette platzieren",
                            command=lambda: question(rframe))

    button.pack()


def question(rframe):
    dialog = tk.messagebox.askokcancel(message="Destroy Window?")


    if dialog is True:
        rframe.destroy()


main()
def call_window(root):
    root.destroy()
    rframe = tk.Tk()

    button = tk.Button(rframe, text="Wette platzieren",
                            command=lambda: question(rframe))

    button.pack()

用 Tk 替换 toplevel window 并且工作正常。