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

Tkinter开发现金簿程序时在Class内部创建菜单不显示问题求助

问题定位

你遇到的菜单不显示问题由3处代码错误共同导致:

  • Menu_ex类的初始化逻辑存在缺陷,既没有保存传入的父窗口实例,也没有主动执行菜单生成的initUI方法
  • 你在MainWindow的初始化流程中从未创建过Menu_ex类的实例,菜单生成代码完全没有被执行
  • Menu_ex的退出方法调用对象错误,无法正常触发窗口退出
代码修正

1. 调整Menu_ex类实现

class Menu_ex():
    def __init__(self, parent):    
        self.parent = parent
        self.initUI()

    def initUI(self):
        menubar = Menu(self.parent)
        self.parent.config(menu=menubar)
        # 新增tearoff=0禁用菜单默认的拖拽分离功能,避免显示空白横线
        fileMenu = Menu(menubar, tearoff=0)
        fileMenu.add_command(label='Exit', command=self.onExit)
        menubar.add_cascade(label='File', menu=fileMenu)

    def onExit(self):
        # 调用父窗口的退出方法,而非当前Menu_ex实例的quit(不存在该方法)
        self.parent.quit()

2. 在MainWindow中实例化菜单

在MainWindow类的__init__方法的末尾,添加如下代码完成菜单实例化:

# 初始化菜单栏
self.menu = Menu_ex(self)

3. 修正open_window方法归属

你当前定义的open_window是全局方法,需要调整缩进将其放到MainWindow类内部,作为类的实例方法才能正常调用弹出二级窗口。

修正完成后运行程序即可看到左上角的File菜单,点击Exit可正常退出程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:03