pysid2 2个窗口跳转,不新建窗口
时间: 2024-05-15 11:13:57 浏览: 15
可以使用`tk.Toplevel()`来创建一个新的窗口,然后使用`Toplevel()`返回的窗口对象来控制该窗口的行为。如果你想在两个已存在的窗口之间切换而不是创建新窗口,可以使用`tk.Tk()`或者`tk.Toplevel()`创建主窗口和子窗口,并且使用`wm_withdraw()`方法将子窗口隐藏起来,然后使用`wm_deiconify()`方法将其重新显示。
以下是一个简单的示例代码,它包含两个窗口,点击其中一个按钮可以使得两个窗口之间切换。
```python
import tkinter as tk
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title('Main Window')
self.geometry('200x100')
button1 = tk.Button(self, text='Open Sub Window', command=self.open_sub_window)
button1.pack(pady=10)
def open_sub_window(self):
self.withdraw() # 隐藏主窗口
sub_window = SubWindow(self)
sub_window.wait_window() # 等待子窗口关闭
self.deiconify() # 显示主窗口
class SubWindow(tk.Toplevel):
def __init__(self, master):
super().__init__(master)
self.title('Sub Window')
self.geometry('200x100')
button2 = tk.Button(self, text='Back to Main Window', command=self.back_to_main_window)
button2.pack(pady=10)
def back_to_main_window(self):
self.destroy() # 关闭子窗口
if __name__ == '__main__':
app = MainWindow()
app.mainloop()
```
在这个例子中,`MainWindow`是主窗口类,`SubWindow`是子窗口类。当点击`MainWindow`中的"Open Sub Window"按钮时,`MainWindow`被隐藏,`SubWindow`被创建出来并显示出来。当在`SubWindow`中点击"Back to Main Window"按钮时,`SubWindow`被关闭,`MainWindow`重新显示出来。在`MainWindow`中通过`wait_window()`方法等待`SubWindow`关闭,避免了两个窗口同时显示的问题。