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

在Tkinter中如何点击原有界面按钮创建新窗口?

Tkinter点击按钮生成带组件的新窗口实现方法

你需要在new_window()函数中创建Tkinter的Toplevel组件(这是Tkinter专门用来创建子窗口的类,不要重复实例化Tk(),否则会出现消息循环异常),然后把需要的Button、Label等组件的父容器指定为这个新的Toplevel窗口即可。

完整的new_window()函数实现示例

from tkinter import Tk, Button, Toplevel, Label

def new_window():
    # 1. 创建新的子窗口实例
    win_new = Toplevel()
    # 2. 可按需设置新窗口的标题、尺寸等属性
    win_new.title("新窗口")
    win_new.geometry("300x200")
    
    # 3. 在新窗口中添加Label组件,父容器指定为刚创建的win_new
    Label(win_new, text="这是新窗口的Label内容").pack(pady=20)
    
    # 4. 在新窗口中添加Button组件,父容器同样指定为win_new
    # 示例为绑定点击关闭当前新窗口的逻辑,可按需修改绑定的函数
    Button(win_new, text="关闭新窗口", command=win_new.destroy).pack(pady=10)

# 主窗口运行逻辑示例
if __name__ == "__main__":
    root = Tk()
    root.title("主窗口")
    # 你的原有按钮代码,注意指定父容器为root避免渲染异常
    Button(root, text = "click", command = new_window).pack(pady=50)
    root.mainloop()

注意要点

  • 所有新窗口内的组件,必须把第一个父容器参数指定为你创建的Toplevel实例,否则组件会默认渲染到主窗口上
  • 不要在new_window()里调用Tk()创建新窗口,一个Tkinter程序只需要一个主Tk()实例和对应的主消息循环
  • 如果需要给新窗口传递数据,可以通过全局变量、类属性,或者闭包的方式实现

内容的提问来源于stack exchange,提问作者Gulshan_kumar_pal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:12:03