簡體   English   中英

Python:關閉子子窗口會阻止打開新的子子窗口

[英]Python: Closing a sub-child-window prevents the opening of a new sub-child

對於我在應用科學大學實驗室中的工作,我需要創建一個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()

這是迄今為止的第三次嘗試,經過我所做的研究,我開始認為處理亞孩子並不是我想的那么容易。

很好,已經非常感謝您的幫助!

問題是您有一個名為Praktikum1的函數,然后創建了一個名為Praktikum1的全局變量,該變量導致該函數被破壞。 因此,下次調用該函數時,實際上是在“調用”該變量。

請勿對全局變量和函數使用相同的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM