gpt4 book ai didi

python - 如何在它调用的函数完成后关闭 Toplevel 窗口?

转载 作者:行者123 更新时间:2023-11-28 20:28:32 26 4
gpt4 key购买 nike

编辑:让我包含我的代码,以便我可以获得一些特定的帮助。

import Tkinter

def goPush():
win2=Tkinter.Toplevel()
win2.geometry('400x50')
Tkinter.Label(win2,text="If you have prepared as Help describes select Go otherwise select Go Back").pack()
Tkinter.Button(win2,text="Go",command=bounceProg).pack(side=Tkinter.RIGHT,padx=5)
Tkinter.Button(win2, text="Go Back", command=win2.destroy).pack(side=Tkinter.RIGHT)

def bounceProg():
d=1
print d
root=Tkinter.Tk()
root.geometry('500x100')
Tkinter.Button(text='Go', command=goPush).pack(side=Tkinter.RIGHT,ipadx=50)
root.mainloop()

因此,当您运行该程序时,它会打开一个显示 Go 的窗口。然后 Go 打开一个窗口,询问您是否阅读了帮助(我没有包含在此代码示例中)并提供 Go Back(返回)和 Go。当您选择 Go 时,它会调用一个打印 1 的函数。在打印 1 之后,我希望窗口关闭并返回到包含 Go 按钮的原始窗口。我该怎么做?

最佳答案

@Kosig 它不会退出 root。 IE。 self.foo = tk.Toplevel(self) 然后是 self.foo.destroy()

例如:

class Foo(tk.Frame):
"""Foo example"""

def __init__(self, master=None):
"""Draw Foo GUI"""
tk.Frame.__init__(self, master)
self.grid()
self.draw_window_bar()

def draw_window_bar(self):
"""Draw bar TopLevel window"""
self.window_bar = tk.Toplevel(self)
# Some uber-pythonian code here...
ask_yes_or_no = messagebox.askyesno('Brian?', 'Romani Ite Domum')
if not ask_yes_or_no:
self.window_bar.destroy()

您有一个主要对象,即 Foo。 Foo 有一个主窗口(称为“框架”),它从 tk.Frame 获取。之后,必须在其中创建所有 Toplevel 窗口(框架)。所以,这里的新窗口是 self.window_bar,它的所有“对象”都在那里,包括销毁它的方法 (self.window_bar.destroy())。您可以从代码的任何部分调用 self.window_bar.destroy(),但这里是在用户单击“否”后调用。

关于python - 如何在它调用的函数完成后关闭 Toplevel 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com