Python:如何在主应用程序窗口之前创建一个对话框窗口

2024-09-28 20:57:51 发布

您现在位置:Python中文网/ 问答频道 /正文

前言:

我有一个Python ControlGPIO代码和一个工作的GUI(让我们称之为MainGUI)。在

我希望在运行MainGUI之前有一个对话框弹出窗口,这样用户就可以启用/禁用MainGUI中的功能。但是MainGUI应该在对话框弹出窗口关闭后才开始运行。在

我的问题是:我怎样才能制作一个弹出窗口来推迟MainGUI直到它关闭?在

下面的代码-boot_windows是我的对话框弹出窗口(所有的启用/禁用复选框都在其中),但显然不会根据需要推迟App

root = Tk()
#output_gpioPins = [4,22,6,26]
#input_gpioPins = [3,21,5,27]
#ip = '192.168.2.112'

boot_windows = Toplevel(root)
text1 = ttk.Label(boot_windows, text="Hello World !!!")
text1.grid()

App = ContorlGPIOWindow(root, ip = '192.168.2.113', with_sf_bt=1, with_hw_bt=1, switch_names=['Light Kitchen','Light Room1', 'Window1', 'Window2'])

root.mainloop()

Tags: 代码ipappwindowswithroot对话框light
1条回答
网友
1楼 · 发布于 2024-09-28 20:57:51

你不能随心所欲。小部件以树状结构存在。除根目录外的所有窗口都需要根窗口。必须首先创建根窗口(这就是它被称为root窗口的原因)。在

如果你不想让它显示出来,你就不想让它显示出来。在

import tkinter as tk
root = tk.Tk()
root.withdraw()
boot_window = tk.Toplevel(...)
...

当您准备好让它可见时,可以调用root.deiconify()。在

另一个常见的解决方案是将根窗口用于您的对话框或启动屏幕或其他任何内容,然后在您准备好时将其内容替换为实际内容。在

至于如何等待弹出。。。根窗口有一个名为wait_window的方法,它将进入事件循环,直到给定的窗口被破坏后才会返回。在

下面是它的用法示例:

^{pr2}$

相关问题 更多 >