You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发文本游戏时,如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:51:19