【问题标题】:Python: Closing a sub-child-window prevents the opening of a new sub-childPython:关闭子窗口可防止打开新的子窗口
【发布时间】:2015-06-12 17:02:40
【问题描述】:

对于我在应用科学大学实验室的工作,我需要创建一个 Python 程序,该程序可以创建一个子窗口,并且可以创建另一个子窗口。

到目前为止,这工作得很好。

棘手的事情是我关闭了孩子的孩子并尝试打开主窗口的新“孙子”。

关闭和打开也适用于第一个孩子的水平。我可以进入那个孩子,回到主菜单等等。

这是我现在正在处理的代码:

import tkinter


def Praktika():
   global Praktika
   Praktika = tkinter.Toplevel(main)
   Praktika.geometry("320x200")

   Prak1 = tkinter.Button(Praktika, text="Praktikum 1", command =Praktikum1)
   Prak1.pack()
   Haupt = tkinter.Button(Praktika, text="Hauptmenu", command = ClosePraktika)
   Haupt.pack()


def ClosePraktika():
    Praktika.destroy()

def Praktikum1():
   global Praktikum1
   Praktikum1 = tkinter.Toplevel(main)
   Praktikum1.geometry("320x200")

   Haupt = tkinter.Button(Praktikum1, text="Hauptmenu", command = ClosePraktikum1)
   Haupt.pack()

def ClosePraktikum1():
   Praktika.destroy()
   Praktikum1.destroy()

def CloseAll():
   main.quit()

main = tkinter.Tk()
main.geometry("320x200")
main.title("Fueh")
tkinter.Button(main, text="Praktika", command=Praktika).pack()
tkinter.Button(main, text="Exit", command=CloseAll).pack()
main.mainloop()

这是迄今为止的第三次尝试,经过我所做的研究,我开始认为处理子孩子并不像我想象的那么容易。

很好, 已经非常感谢您的帮助!

【问题讨论】:

  • 与其编辑您的问题标题以说“已解决”,请单击左侧的勾号接受答案(如果您不确定我的意思,请参阅here 获取说明)

标签: python tkinter window children grandchild


【解决方案1】:

问题是您有一个名为Praktikum1 的函数,然后您创建了一个名为Praktikum1 的全局变量,这会导致该函数被销毁。所以,下次调用函数时,实际上是在“调用”变量。

不要为全局变量和函数使用相同的名称。

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多