如何解决Python Tkinter 销毁顶级窗口缺少参数
我的代码打开一个带有按钮的窗口。当按钮被点击时,一个顶层窗口被创建,根窗口被销毁。单击顶层窗口上的按钮时,会打开一个消息框。我希望在用户按下消息框的确定按钮时关闭顶层窗口。 按 Ok 会导致 TypeError: destroy() missing 1 required positional argument: 'self'
我真的不明白为什么它不起作用,因为顶层窗口作为参数传递给 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,它工作正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。