tkinter子窗口比父窗口先弹出
时间: 2023-08-04 10:07:52 浏览: 57
如果您希望在Tkinter中创建一个父窗口和一个子窗口,并且希望子窗口先弹出显示,可以按照以下示例代码进行操作:
```python
import tkinter as tk
# 创建父窗口
root = tk.Tk()
# 在这里添加父窗口的部件或逻辑
# 创建子窗口
child = tk.Toplevel(root)
# 在这里添加子窗口的部件或逻辑
# 显示子窗口
child.grab_set()
# 显示父窗口
root.mainloop()
```
在这个示例中,我们首先创建了一个父窗口,并将其分配给名为`root`的变量。然后,我们使用`tk.Toplevel(root)`创建了一个子窗口,并将其分配给名为`child`的变量。接下来,我们调用`child.grab_set()`来使子窗口获得焦点并处于活动状态。最后,我们调用`root.mainloop()`来启动Tkinter的事件循环,使父窗口和子窗口显示并响应用户交互。
请注意,您可以根据需要在父窗口和子窗口中添加其他的Tkinter部件或逻辑代码。
相关问题
tkinter父窗口比子窗口先弹出
如果您希望在Tkinter中创建一个父窗口和一个子窗口,并且希望父窗口先弹出显示,可以按照以下示例代码进行操作:
```python
import tkinter as tk
# 创建父窗口
root = tk.Tk()
# 在这里添加父窗口的部件或逻辑
# 创建子窗口
child = tk.Toplevel(root)
# 在这里添加子窗口的部件或逻辑
# 隐藏子窗口
child.withdraw()
# 显示父窗口
root.deiconify()
# 显示子窗口
child.deiconify()
# 进入事件循环
root.mainloop()
```
在这个示例中,我们首先创建了一个父窗口,并将其分配给名为`root`的变量。然后,我们使用`tk.Toplevel(root)`创建了一个子窗口,并将其分配给名为`child`的变量。接下来,我们使用`child.withdraw()`隐藏子窗口,然后使用`root.deiconify()`显示父窗口。最后,我们使用`child.deiconify()`显示子窗口。通过这种方式,父窗口会先弹出显示,然后子窗口会在父窗口之上显示。
请注意,您可以根据需要在父窗口和子窗口中添加其他的Tkinter部件或逻辑代码。这个示例中的最后一行`root.mainloop()`是进入Tkinter的事件循环,用于处理用户交互和窗口事件。
tkinter子窗口返回父窗口
在tkinter中,可以使用Toplevel()方法创建子窗口。当子窗口关闭时,可以使用wait_window()方法等待子窗口关闭,并在父窗口中获取子窗口的返回值。具体步骤如下:
1. 在父窗口中定义一个函数,用于打开子窗口并等待其关闭。
2. 在子窗口中定义一个函数,用于在子窗口中获取用户输入的值,并将其返回给父窗口。
3. 在父窗口中调用子窗口函数,并获取子窗口返回的值。
下面是一个简单的例子,演示了如何在tkinter中创建子窗口并返回值给父窗口:
```
from tkinter import *
from tkinter.simpledialog import askstring
class MyDialog:
def __init__(self, parent):
top = self.top = Toplevel(parent)
Label(top, text="请输入一个字符串:").pack()
self.e = Entry(top)
self.e.pack(padx=5)
self.e.focus_set()
b = Button(top, text="确定", command=self.ok)
b.pack(pady=5)
def ok(self):
self.value = self.e.get()
self.top.destroy()
def showDialog():
d = MyDialog(root)
root.wait_window(d.top)
return d.value
root = Tk()
root.geometry("200x200")
b = Button(root, text="打开对话框", command=showDialog)
b.pack(pady=20)
root.mainloop()
```
在这个例子中,我们创建了一个名为MyDialog的类,用于创建子窗口。在子窗口中,我们使用Entry控件获取用户输入的值,并在用户点击“确定”按钮时将其保存到self.value中,并关闭子窗口。在父窗口中,我们定义了一个名为showDialog的函数,用于打开子窗口并等待其关闭。在函数中,我们创建了一个MyDialog对象,并使用root.wait_window(d.top)等待子窗口关闭。最后,我们返回子窗口中获取的值。