tkinter 有多个子窗口,在其中一个窗口点击之后,跳转到另一个已经存在的子窗口
时间: 2024-09-24 09:25:07 浏览: 55
Tkinter是一个Python库,用于创建图形用户界面(GUI)应用程序,特别是那些基于Tk内核的应用。如果你想要在Tkinter程序中创建并管理多个子窗口,并允许用户从一个子窗口切换到另一个已存在窗口,你可以这样做:
1. **创建窗口**:首先,你需要定义每个窗口,每个窗口都是`Toplevel`、`TopLevel`或`Toplevel`的一个实例。例如:
```python
import tkinter as tk
window1 = tk.Toplevel()
window2 = tk.Toplevel()
# 对每个窗口添加必要的布局和功能...
```
2. **绑定事件处理**:在第一个窗口上添加一个按钮或者其他交互元素,当这个元素被点击时,设置它的`command`属性来切换到第二个窗口:
```python
button1 = tk.Button(window1, text="切换到窗口2", command=window2.focus_set)
button1.pack() # 添加到窗口1的布局中
```
这将使点击按钮时焦点转移到窗口2。如果需要,你还可以在`command`里添加一些额外的操作,比如关闭当前窗口。
3. **保持状态和切换**:为了使用户可以在两个窗口之间来回切换,可以考虑保存窗口的状态并在适当的时候切换显示:
```python
def switch_windows(event=None):
if window1.winfo_ismapped():
window1.withdraw()
window2.deiconify()
else:
window2.withdraw()
window1.deiconify()
# 现在将这个函数绑定到所有窗口的Close事件上
window1.protocol("WM_DELETE_WINDOW", switch_windows)
window2.protocol("WM_DELETE_WINDOW", switch_windows)
```
现在,当你在窗口1点击按钮或关闭窗口时,会自动切换到窗口2。
阅读全文