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

如何从不同Python文件操作同一个Tkinter窗口?

给main.py的Tk主窗口添加菜单栏(通过menu.py实现)

核心思路是将main.py中的root窗口实例传递给menu.py的函数,在menu.py中完成菜单栏的创建与绑定。

main.py 代码

import tkinter as tk
import menu

if __name__ == "__main__":
    root = tk.Tk()
    root.title("带菜单栏的主窗口")
    # 调用menu模块的函数为root添加菜单栏
    menu.setup_main_menu(root)
    root.mainloop()
import tkinter as tk

def setup_main_menu(parent_root):
    # 创建主菜单栏
    main_menubar = tk.Menu(parent_root)
    
    # 创建「文件」子菜单
    file_submenu = tk.Menu(main_menubar, tearoff=0)
    file_submenu.add_command(label="打开", command=lambda: print("执行打开操作"))
    file_submenu.add_command(label="保存", command=lambda: print("执行保存操作"))
    file_submenu.add_separator()
    file_submenu.add_command(label="退出", command=parent_root.quit)
    main_menubar.add_cascade(label="文件", menu=file_submenu)
    
    # 创建「编辑」子菜单
    edit_submenu = tk.Menu(main_menubar, tearoff=0)
    edit_submenu.add_command(label="复制", command=lambda: print("执行复制操作"))
    edit_submenu.add_command(label="粘贴", command=lambda: print("执行粘贴操作"))
    main_menubar.add_cascade(label="编辑", menu=edit_submenu)
    
    # 将菜单栏绑定到传入的主窗口
    parent_root.config(menu=main_menubar)

关键说明

  • 把main.py的root作为参数传入menu.py的函数,直接操作这个窗口实例
  • tearoff=0用于关闭子菜单的可分离功能(默认允许拖出,一般场景不需要)
  • 可根据需求添加更多子菜单或命令,替换command参数的逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:24:27