开发文本游戏时,如何用Tkinter点击按钮打开新窗口并关闭原窗口?
Tkinter实现两种窗口操作需求
下面针对你提出的文本类游戏窗口操作需求,给出具体实现代码和说明:
一、点击按钮打开新窗口(保留原窗口)
Tkinter里可以直接用Toplevel()组件创建新窗口,它作为原窗口的子窗口存在,原窗口会保持运行状态。
示例代码:
import tkinter as tk def open_new_window(): # 创建新窗口 new_window = tk.Toplevel() new_window.title("新游戏窗口") # 给新窗口添加游戏内容 tk.Label(new_window, text="欢迎进入新的游戏场景").pack(padx=30, pady=30) # 初始化主窗口 root = tk.Tk() root.title("主游戏界面") # 添加触发按钮 tk.Button(root, text="打开新场景", command=open_new_window).pack(padx=50, pady=50) root.mainloop()
点击按钮后,open_new_window函数会生成独立的新窗口,原主窗口不受影响,适合需要保留主界面的游戏场景。
二、点击按钮打开新Root窗口并关闭原窗口
这种场景需要先销毁原主窗口,再创建新的Tk实例作为新主窗口,最后启动新窗口的事件循环。
示例代码:
import tkinter as tk def switch_to_new_main_window(): # 关闭原主窗口 root.destroy() # 创建新的主窗口 new_root = tk.Tk() new_root.title("新主游戏界面") tk.Label(new_root, text="已切换到全新游戏主界面").pack(padx=30, pady=30) # 启动新窗口的事件循环 new_root.mainloop() # 初始化原主窗口 root = tk.Tk() root.title("原主游戏界面") # 添加切换按钮 tk.Button(root, text="切换主界面", command=switch_to_new_main_window).pack(padx=50, pady=50) root.mainloop()
点击按钮后,原窗口会被销毁,同时启动新的主窗口循环,适合完全切换游戏场景、不需要保留原界面的需求。
内容的提问来源于stack exchange,提问作者Maxime Delbrouck
相关产品推荐
相关产品推荐

