在 Python TKinter 中创建弹出窗口时禁用底层窗口

popup我们很熟悉,也用在很多应用中。可以通过创建窗口实例来创建 tkinter 应用程序中的弹出Toplevel(root)窗口。对于特定的应用程序,我们可以在按钮对象上触发弹出窗口。

让我们创建一个 Python 脚本来在显示弹出窗口后关闭底层或主窗口。withdraw()我们可以使用该方法在弹出窗口中关闭主窗口。

示范

通过这个例子,我们将创建一个可以在点击按钮后触发的弹出对话框。弹出窗口打开后,父窗口将自动关闭。

#导入所需的库
from tkinter import*
#创建一个 tkinter 框架实例
win= Tk()
#定义窗口的几何形状
win.geometry("750x250")
#定义一个关闭弹窗的函数
def close_win(top):
   top.destroy()
   win.destroy()
#定义一个函数来打开弹出对话框
def popupwin():
   #撤回主窗口
   win.withdraw()
   #创建顶层窗口
   top= Toplevel(win)
   top.geometry("750x250")
   #在 Toplevel 窗口中创建一个 Entry Widget
   entry= Entry(top, width= 25)
   entry.insert(INSERT, "Enter Your Email ID")
   entry.pack()
   #在顶层窗口中创建按钮小部件
   button= Button(top, text="Ok", command=lambda:close_win(top))
   button.pack(pady=5, side= TOP)
#创建标签
label= Label(win, text="Click the Button to Open the Popup Dialogue", font= ('Helvetica 15 bold'))
label.pack(pady=20)
#创建一个按钮
button= Button(win, text= "点击我!", command= popupwin, font= ('Helvetica 14 bold'))
button.pack(pady=20)
win.mainloop()
输出结果

当我们执行上面的代码片段时,它会显示一个窗口。

现在单击“单击我”按钮。它将打开一个弹出窗口并关闭父窗口。