首页 > 解决方案 > 我不想在 Toplevel 打开时打开另一个(对于 Tkinter)

问题描述

我不想在 Toplevel 打开时打开另一个(对于 Tkinter)


def Combine():
        swindow = tk.Toplevel(window)
        swindow.geometry("250x350")
        swindow.resizable(False, False)

button2 = tk.Button(window,text="COMBINE",command=Combine,fg="white",bg="black",font=5)
button2.place(x=260,y=550)

标签: pythontkinter

解决方案


看到这不会打开任何其他Toplevel(),直到前一个被破坏

from tkinter import *
root=Tk()
number=0
Label(root,bg="white",text="Hello").place(x=0,y=0)

def Combine():
    def destroy_top(*args):
        global number
        number=0
        swindow.destroy()
        
    global number
    if number==0:
        
        number=1
        global swindow
        swindow = Toplevel()
        swindow.geometry("250x350")
        swindow.resizable(False, False)
        btn = Button(swindow,text='EXIT',command=destroy_top)
        swindow.bind("<Destroy>",destroy_top)
        btn.pack()
    
    
        #global swindow
        #swindow.destroy()


button2 = Button(root,text="COMBINE",command=Combine,fg="white",bg="black",font=5)
button2.pack()
#root.wm_attributes('-transparentcolor','black')
root.mainloop()

推荐阅读